1// Copyright 2023 Google LLC 2// 3// Licensed under the Apache License, Version 2.0 (the "License"); 4// you may not use this file except in compliance with the License. 5// You may obtain a copy of the License at 6// 7// http://www.apache.org/licenses/LICENSE-2.0 8// 9// Unless required by applicable law or agreed to in writing, software 10// distributed under the License is distributed on an "AS IS" BASIS, 11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12// See the License for the specific language governing permissions and 13// limitations under the License. 14 15syntax = "proto3"; 16 17package google.cloud.telcoautomation.v1; 18 19import "google/api/annotations.proto"; 20import "google/api/client.proto"; 21import "google/api/field_behavior.proto"; 22import "google/api/resource.proto"; 23import "google/longrunning/operations.proto"; 24import "google/protobuf/empty.proto"; 25import "google/protobuf/field_mask.proto"; 26import "google/protobuf/timestamp.proto"; 27 28option csharp_namespace = "Google.Cloud.TelcoAutomation.V1"; 29option go_package = "cloud.google.com/go/telcoautomation/apiv1/telcoautomationpb;telcoautomationpb"; 30option java_multiple_files = true; 31option java_outer_classname = "TelcoautomationProto"; 32option java_package = "com.google.cloud.telcoautomation.v1"; 33option php_namespace = "Google\\Cloud\\TelcoAutomation\\V1"; 34option ruby_package = "Google::Cloud::TelcoAutomation::V1"; 35 36// TelcoAutomation Service manages the control plane cluster a.k.a. 37// Orchestration Cluster (GKE cluster with config controller) of TNA. It also 38// exposes blueprint APIs which manages the lifecycle of blueprints that control 39// the infrastructure setup (e.g GDCE clusters) and deployment of network 40// functions. 41service TelcoAutomation { 42 option (google.api.default_host) = "telcoautomation.googleapis.com"; 43 option (google.api.oauth_scopes) = 44 "https://www.googleapis.com/auth/cloud-platform"; 45 46 // Lists OrchestrationClusters in a given project and location. 47 rpc ListOrchestrationClusters(ListOrchestrationClustersRequest) 48 returns (ListOrchestrationClustersResponse) { 49 option (google.api.http) = { 50 get: "/v1/{parent=projects/*/locations/*}/orchestrationClusters" 51 }; 52 option (google.api.method_signature) = "parent"; 53 } 54 55 // Gets details of a single OrchestrationCluster. 56 rpc GetOrchestrationCluster(GetOrchestrationClusterRequest) 57 returns (OrchestrationCluster) { 58 option (google.api.http) = { 59 get: "/v1/{name=projects/*/locations/*/orchestrationClusters/*}" 60 }; 61 option (google.api.method_signature) = "name"; 62 } 63 64 // Creates a new OrchestrationCluster in a given project and location. 65 rpc CreateOrchestrationCluster(CreateOrchestrationClusterRequest) 66 returns (google.longrunning.Operation) { 67 option (google.api.http) = { 68 post: "/v1/{parent=projects/*/locations/*}/orchestrationClusters" 69 body: "orchestration_cluster" 70 }; 71 option (google.api.method_signature) = 72 "parent,orchestration_cluster,orchestration_cluster_id"; 73 option (google.longrunning.operation_info) = { 74 response_type: "OrchestrationCluster" 75 metadata_type: "OperationMetadata" 76 }; 77 } 78 79 // Deletes a single OrchestrationCluster. 80 rpc DeleteOrchestrationCluster(DeleteOrchestrationClusterRequest) 81 returns (google.longrunning.Operation) { 82 option (google.api.http) = { 83 delete: "/v1/{name=projects/*/locations/*/orchestrationClusters/*}" 84 }; 85 option (google.api.method_signature) = "name"; 86 option (google.longrunning.operation_info) = { 87 response_type: "google.protobuf.Empty" 88 metadata_type: "OperationMetadata" 89 }; 90 } 91 92 // Lists EdgeSlms in a given project and location. 93 rpc ListEdgeSlms(ListEdgeSlmsRequest) returns (ListEdgeSlmsResponse) { 94 option (google.api.http) = { 95 get: "/v1/{parent=projects/*/locations/*}/edgeSlms" 96 }; 97 option (google.api.method_signature) = "parent"; 98 } 99 100 // Gets details of a single EdgeSlm. 101 rpc GetEdgeSlm(GetEdgeSlmRequest) returns (EdgeSlm) { 102 option (google.api.http) = { 103 get: "/v1/{name=projects/*/locations/*/edgeSlms/*}" 104 }; 105 option (google.api.method_signature) = "name"; 106 } 107 108 // Creates a new EdgeSlm in a given project and location. 109 rpc CreateEdgeSlm(CreateEdgeSlmRequest) 110 returns (google.longrunning.Operation) { 111 option (google.api.http) = { 112 post: "/v1/{parent=projects/*/locations/*}/edgeSlms" 113 body: "edge_slm" 114 }; 115 option (google.api.method_signature) = "parent,edge_slm,edge_slm_id"; 116 option (google.longrunning.operation_info) = { 117 response_type: "EdgeSlm" 118 metadata_type: "OperationMetadata" 119 }; 120 } 121 122 // Deletes a single EdgeSlm. 123 rpc DeleteEdgeSlm(DeleteEdgeSlmRequest) 124 returns (google.longrunning.Operation) { 125 option (google.api.http) = { 126 delete: "/v1/{name=projects/*/locations/*/edgeSlms/*}" 127 }; 128 option (google.api.method_signature) = "name"; 129 option (google.longrunning.operation_info) = { 130 response_type: "google.protobuf.Empty" 131 metadata_type: "OperationMetadata" 132 }; 133 } 134 135 // Creates a blueprint. 136 rpc CreateBlueprint(CreateBlueprintRequest) returns (Blueprint) { 137 option (google.api.http) = { 138 post: "/v1/{parent=projects/*/locations/*/orchestrationClusters/*}/blueprints" 139 body: "blueprint" 140 }; 141 option (google.api.method_signature) = "parent,blueprint,blueprint_id"; 142 } 143 144 // Updates a blueprint. 145 rpc UpdateBlueprint(UpdateBlueprintRequest) returns (Blueprint) { 146 option (google.api.http) = { 147 patch: "/v1/{blueprint.name=projects/*/locations/*/orchestrationClusters/*/blueprints/*}" 148 body: "blueprint" 149 }; 150 option (google.api.method_signature) = "blueprint,update_mask"; 151 } 152 153 // Returns the requested blueprint. 154 rpc GetBlueprint(GetBlueprintRequest) returns (Blueprint) { 155 option (google.api.http) = { 156 get: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/blueprints/*}" 157 }; 158 option (google.api.method_signature) = "name"; 159 } 160 161 // Deletes a blueprint and all its revisions. 162 rpc DeleteBlueprint(DeleteBlueprintRequest) returns (google.protobuf.Empty) { 163 option (google.api.http) = { 164 delete: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/blueprints/*}" 165 }; 166 option (google.api.method_signature) = "name"; 167 } 168 169 // List all blueprints. 170 rpc ListBlueprints(ListBlueprintsRequest) returns (ListBlueprintsResponse) { 171 option (google.api.http) = { 172 get: "/v1/{parent=projects/*/locations/*/orchestrationClusters/*}/blueprints" 173 }; 174 option (google.api.method_signature) = "parent"; 175 } 176 177 // Approves a blueprint and commits a new revision. 178 rpc ApproveBlueprint(ApproveBlueprintRequest) returns (Blueprint) { 179 option (google.api.http) = { 180 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/blueprints/*}:approve" 181 body: "*" 182 }; 183 option (google.api.method_signature) = "name"; 184 } 185 186 // Proposes a blueprint for approval of changes. 187 rpc ProposeBlueprint(ProposeBlueprintRequest) returns (Blueprint) { 188 option (google.api.http) = { 189 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/blueprints/*}:propose" 190 body: "*" 191 }; 192 option (google.api.method_signature) = "name"; 193 } 194 195 // Rejects a blueprint revision proposal and flips it back to Draft state. 196 rpc RejectBlueprint(RejectBlueprintRequest) returns (Blueprint) { 197 option (google.api.http) = { 198 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/blueprints/*}:reject" 199 body: "*" 200 }; 201 option (google.api.method_signature) = "name"; 202 } 203 204 // List blueprint revisions of a given blueprint. 205 rpc ListBlueprintRevisions(ListBlueprintRevisionsRequest) 206 returns (ListBlueprintRevisionsResponse) { 207 option (google.api.http) = { 208 get: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/blueprints/*}:listRevisions" 209 }; 210 option (google.api.method_signature) = "name"; 211 } 212 213 // Searches across blueprint revisions. 214 rpc SearchBlueprintRevisions(SearchBlueprintRevisionsRequest) 215 returns (SearchBlueprintRevisionsResponse) { 216 option (google.api.http) = { 217 get: "/v1/{parent=projects/*/locations/*/orchestrationClusters/*}/blueprints:searchRevisions" 218 }; 219 option (google.api.method_signature) = "parent,query"; 220 } 221 222 // Searches across deployment revisions. 223 rpc SearchDeploymentRevisions(SearchDeploymentRevisionsRequest) 224 returns (SearchDeploymentRevisionsResponse) { 225 option (google.api.http) = { 226 get: "/v1/{parent=projects/*/locations/*/orchestrationClusters/*}/deployments:searchRevisions" 227 }; 228 option (google.api.method_signature) = "parent,query"; 229 } 230 231 // Discards the changes in a blueprint and reverts the blueprint to the last 232 // approved blueprint revision. No changes take place if a blueprint does not 233 // have revisions. 234 rpc DiscardBlueprintChanges(DiscardBlueprintChangesRequest) 235 returns (DiscardBlueprintChangesResponse) { 236 option (google.api.http) = { 237 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/blueprints/*}:discard" 238 body: "*" 239 }; 240 option (google.api.method_signature) = "name"; 241 } 242 243 // Lists the blueprints in TNA's public catalog. Default page size = 20, 244 // Max Page Size = 100. 245 rpc ListPublicBlueprints(ListPublicBlueprintsRequest) 246 returns (ListPublicBlueprintsResponse) { 247 option (google.api.http) = { 248 get: "/v1/{parent=projects/*/locations/*}/publicBlueprints" 249 }; 250 option (google.api.method_signature) = "parent"; 251 } 252 253 // Returns the requested public blueprint. 254 rpc GetPublicBlueprint(GetPublicBlueprintRequest) returns (PublicBlueprint) { 255 option (google.api.http) = { 256 get: "/v1/{name=projects/*/locations/*/publicBlueprints/*}" 257 }; 258 option (google.api.method_signature) = "name"; 259 } 260 261 // Creates a deployment. 262 rpc CreateDeployment(CreateDeploymentRequest) returns (Deployment) { 263 option (google.api.http) = { 264 post: "/v1/{parent=projects/*/locations/*/orchestrationClusters/*}/deployments" 265 body: "deployment" 266 }; 267 option (google.api.method_signature) = "parent,deployment,deployment_id"; 268 } 269 270 // Updates a deployment. 271 rpc UpdateDeployment(UpdateDeploymentRequest) returns (Deployment) { 272 option (google.api.http) = { 273 patch: "/v1/{deployment.name=projects/*/locations/*/orchestrationClusters/*/deployments/*}" 274 body: "deployment" 275 }; 276 option (google.api.method_signature) = "deployment,update_mask"; 277 } 278 279 // Returns the requested deployment. 280 rpc GetDeployment(GetDeploymentRequest) returns (Deployment) { 281 option (google.api.http) = { 282 get: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*}" 283 }; 284 option (google.api.method_signature) = "name"; 285 } 286 287 // Removes the deployment by marking it as DELETING. Post which deployment and 288 // it's revisions gets deleted. 289 rpc RemoveDeployment(RemoveDeploymentRequest) 290 returns (google.protobuf.Empty) { 291 option (google.api.http) = { 292 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*}:remove" 293 body: "*" 294 }; 295 option (google.api.method_signature) = "name"; 296 } 297 298 // List all deployments. 299 rpc ListDeployments(ListDeploymentsRequest) 300 returns (ListDeploymentsResponse) { 301 option (google.api.http) = { 302 get: "/v1/{parent=projects/*/locations/*/orchestrationClusters/*}/deployments" 303 }; 304 option (google.api.method_signature) = "parent"; 305 } 306 307 // List deployment revisions of a given deployment. 308 rpc ListDeploymentRevisions(ListDeploymentRevisionsRequest) 309 returns (ListDeploymentRevisionsResponse) { 310 option (google.api.http) = { 311 get: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*}:listRevisions" 312 }; 313 option (google.api.method_signature) = "name"; 314 } 315 316 // Discards the changes in a deployment and reverts the deployment to the last 317 // approved deployment revision. No changes take place if a deployment does 318 // not have revisions. 319 rpc DiscardDeploymentChanges(DiscardDeploymentChangesRequest) 320 returns (DiscardDeploymentChangesResponse) { 321 option (google.api.http) = { 322 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*}:discard" 323 body: "*" 324 }; 325 option (google.api.method_signature) = "name"; 326 } 327 328 // Applies the deployment's YAML files to the parent orchestration cluster. 329 rpc ApplyDeployment(ApplyDeploymentRequest) returns (Deployment) { 330 option (google.api.http) = { 331 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*}:apply" 332 body: "*" 333 }; 334 option (google.api.method_signature) = "name"; 335 } 336 337 // Returns the requested deployment status. 338 rpc ComputeDeploymentStatus(ComputeDeploymentStatusRequest) 339 returns (ComputeDeploymentStatusResponse) { 340 option (google.api.http) = { 341 get: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*}:computeDeploymentStatus" 342 }; 343 option (google.api.method_signature) = "name"; 344 } 345 346 // Rollback the active deployment to the given past approved deployment 347 // revision. 348 rpc RollbackDeployment(RollbackDeploymentRequest) returns (Deployment) { 349 option (google.api.http) = { 350 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*}:rollback" 351 body: "*" 352 }; 353 option (google.api.method_signature) = "name,revision_id"; 354 } 355 356 // Returns the requested hydrated deployment. 357 rpc GetHydratedDeployment(GetHydratedDeploymentRequest) 358 returns (HydratedDeployment) { 359 option (google.api.http) = { 360 get: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*/hydratedDeployments/*}" 361 }; 362 option (google.api.method_signature) = "name"; 363 } 364 365 // List all hydrated deployments present under a deployment. 366 rpc ListHydratedDeployments(ListHydratedDeploymentsRequest) 367 returns (ListHydratedDeploymentsResponse) { 368 option (google.api.http) = { 369 get: "/v1/{parent=projects/*/locations/*/orchestrationClusters/*/deployments/*}/hydratedDeployments" 370 }; 371 option (google.api.method_signature) = "parent"; 372 } 373 374 // Updates a hydrated deployment. 375 rpc UpdateHydratedDeployment(UpdateHydratedDeploymentRequest) 376 returns (HydratedDeployment) { 377 option (google.api.http) = { 378 patch: "/v1/{hydrated_deployment.name=projects/*/locations/*/orchestrationClusters/*/deployments/*/hydratedDeployments/*}" 379 body: "hydrated_deployment" 380 }; 381 option (google.api.method_signature) = "hydrated_deployment,update_mask"; 382 } 383 384 // Applies a hydrated deployment to a workload cluster. 385 rpc ApplyHydratedDeployment(ApplyHydratedDeploymentRequest) 386 returns (HydratedDeployment) { 387 option (google.api.http) = { 388 post: "/v1/{name=projects/*/locations/*/orchestrationClusters/*/deployments/*/hydratedDeployments/*}:apply" 389 body: "*" 390 }; 391 option (google.api.method_signature) = "name"; 392 } 393} 394 395// BlueprintView defines the type of view of the blueprint. 396enum BlueprintView { 397 // Unspecified enum value. 398 BLUEPRINT_VIEW_UNSPECIFIED = 0; 399 400 // View which only contains metadata. 401 BLUEPRINT_VIEW_BASIC = 1; 402 403 // View which contains metadata and files it encapsulates. 404 BLUEPRINT_VIEW_FULL = 2; 405} 406 407// DeploymentView defines the type of view of the deployment. 408enum DeploymentView { 409 // Unspecified enum value. 410 DEPLOYMENT_VIEW_UNSPECIFIED = 0; 411 412 // View which only contains metadata. 413 DEPLOYMENT_VIEW_BASIC = 1; 414 415 // View which contains metadata and files it encapsulates. 416 DEPLOYMENT_VIEW_FULL = 2; 417} 418 419// Represent type of CR. 420enum ResourceType { 421 // Unspecified resource type. 422 RESOURCE_TYPE_UNSPECIFIED = 0; 423 424 // User specified NF Deploy CR. 425 NF_DEPLOY_RESOURCE = 1; 426 427 // CRs that are part of a blueprint. 428 DEPLOYMENT_RESOURCE = 2; 429} 430 431// Status of an entity (resource, deployment). 432enum Status { 433 // Unknown state. 434 STATUS_UNSPECIFIED = 0; 435 436 // Under progress. 437 STATUS_IN_PROGRESS = 1; 438 439 // Running and ready to serve traffic. 440 STATUS_ACTIVE = 2; 441 442 // Failed or stalled. 443 STATUS_FAILED = 3; 444 445 // Delete in progress. 446 STATUS_DELETING = 4; 447 448 // Deleted deployment. 449 STATUS_DELETED = 5; 450 451 // NFDeploy specific status. Peering in progress. 452 STATUS_PEERING = 10; 453 454 // K8s objects such as NetworkAttachmentDefinition don't have a defined 455 // status. 456 STATUS_NOT_APPLICABLE = 11; 457} 458 459// DeploymentLevel of a blueprint signifies where the blueprint will be 460// applied. 461enum DeploymentLevel { 462 // Default unspecified deployment level. 463 DEPLOYMENT_LEVEL_UNSPECIFIED = 0; 464 465 // Blueprints at HYDRATION level cannot be used to create a Deployment 466 // (A user cannot manually initate deployment of these blueprints on 467 // orchestration or workload cluster). 468 // These blueprints stay in a user's private catalog and are configured and 469 // deployed by TNA automation. 470 HYDRATION = 1; 471 472 // Blueprints at SINGLE_DEPLOYMENT level can be 473 // a) Modified in private catalog. 474 // b) Used to create a deployment on orchestration cluster by the user, once 475 // approved. 476 SINGLE_DEPLOYMENT = 2; 477 478 // Blueprints at MULTI_DEPLOYMENT level can be 479 // a) Modified in private catalog. 480 // b) Used to create a deployment on orchestration cluster which will create 481 // further hydrated deployments. 482 MULTI_DEPLOYMENT = 3; 483 484 // Blueprints at WORKLOAD_CLUSTER_DEPLOYMENT level can be 485 // a) Modified in private catalog. 486 // b) Used to create a deployment on workload cluster by the user, once 487 // approved. 488 WORKLOAD_CLUSTER_DEPLOYMENT = 4; 489} 490 491// Orchestration cluster represents a GKE cluster with config controller and 492// TNA specific components installed on it. 493message OrchestrationCluster { 494 option (google.api.resource) = { 495 type: "telcoautomation.googleapis.com/OrchestrationCluster" 496 pattern: "projects/{project}/locations/{location}/orchestrationClusters/{orchestration_cluster}" 497 }; 498 499 // Possible states that the Orchestration Cluster can be in. 500 enum State { 501 // Unspecified state. 502 STATE_UNSPECIFIED = 0; 503 504 // OrchestrationCluster is being created. 505 CREATING = 1; 506 507 // OrchestrationCluster has been created and is ready for use. 508 ACTIVE = 2; 509 510 // OrchestrationCluster is being deleted. 511 DELETING = 3; 512 513 // OrchestrationCluster encountered an error and is in an indeterministic 514 // state. User can still initiate a delete operation on this state. 515 FAILED = 4; 516 } 517 518 // Name of the orchestration cluster. The name of orchestration cluster cannot 519 // be more than 24 characters. 520 string name = 1; 521 522 // Management configuration of the underlying GKE cluster. 523 ManagementConfig management_config = 5; 524 525 // Output only. [Output only] Create time stamp. 526 google.protobuf.Timestamp create_time = 2 527 [(google.api.field_behavior) = OUTPUT_ONLY]; 528 529 // Output only. [Output only] Update time stamp. 530 google.protobuf.Timestamp update_time = 3 531 [(google.api.field_behavior) = OUTPUT_ONLY]; 532 533 // Labels as key value pairs. 534 map<string, string> labels = 4; 535 536 // Output only. Provides the TNA version installed on the cluster. 537 string tna_version = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 538 539 // Output only. State of the Orchestration Cluster. 540 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 541} 542 543// EdgeSlm represents an SLM instance which manages the lifecycle of edge 544// components installed on Workload clusters managed by an Orchestration 545// Cluster. 546message EdgeSlm { 547 option (google.api.resource) = { 548 type: "telcoautomation.googleapis.com/EdgeSlm" 549 pattern: "projects/{project}/locations/{location}/edgeSlms/{edge_slm}" 550 plural: "edgeSlms" 551 singular: "edgeSlm" 552 }; 553 554 // Possible states of the resource. 555 enum State { 556 // Unspecified state. 557 STATE_UNSPECIFIED = 0; 558 559 // EdgeSlm is being created. 560 CREATING = 1; 561 562 // EdgeSlm has been created and is ready for use. 563 ACTIVE = 2; 564 565 // EdgeSlm is being deleted. 566 DELETING = 3; 567 568 // EdgeSlm encountered an error and is in an indeterministic 569 // state. User can still initiate a delete operation on this state. 570 FAILED = 4; 571 } 572 573 // Workload clusters supported by TNA. New values will be added to the enum 574 // list as TNA adds supports for new workload clusters in future. 575 enum WorkloadClusterType { 576 // Unspecified workload cluster. 577 WORKLOAD_CLUSTER_TYPE_UNSPECIFIED = 0; 578 579 // Workload cluster is a GDCE cluster. 580 GDCE = 1; 581 582 // Workload cluster is a GKE cluster. 583 GKE = 2; 584 } 585 586 // Name of the EdgeSlm resource. 587 string name = 1; 588 589 // Immutable. Reference to the orchestration cluster on which templates for 590 // this resources will be applied. This should be of format 591 // projects/{project}/locations/{location}/orchestrationClusters/{orchestration_cluster}. 592 string orchestration_cluster = 5 [ 593 (google.api.field_behavior) = IMMUTABLE, 594 (google.api.resource_reference) = { 595 type: "telcoautomation.googleapis.com/OrchestrationCluster" 596 } 597 ]; 598 599 // Output only. [Output only] Create time stamp. 600 google.protobuf.Timestamp create_time = 2 601 [(google.api.field_behavior) = OUTPUT_ONLY]; 602 603 // Output only. [Output only] Update time stamp. 604 google.protobuf.Timestamp update_time = 3 605 [(google.api.field_behavior) = OUTPUT_ONLY]; 606 607 // Optional. Labels as key value pairs. The key and value should contain 608 // characters which are UTF-8 compliant and less than 50 characters. 609 map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL]; 610 611 // Output only. Provides the active TNA version for this resource. 612 string tna_version = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 613 614 // Output only. State of the EdgeSlm resource. 615 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 616 617 // Optional. Type of workload cluster for which an EdgeSLM resource is 618 // created. 619 WorkloadClusterType workload_cluster_type = 8 620 [(google.api.field_behavior) = OPTIONAL]; 621} 622 623// A Blueprint contains a collection of kubernetes resources in the form of 624// YAML files. The file contents of a blueprint are collectively known as 625// package. A blueprint can be 626// a) imported from TNA's public catalog 627// b) modified as per a user's need 628// c) proposed and approved. 629// On approval, a revision of blueprint is created which can be used to 630// create a deployment on Orchestration or Workload Cluster. 631message Blueprint { 632 option (google.api.resource) = { 633 type: "telcoautomation.googleapis.com/Blueprint" 634 pattern: "projects/{project}/locations/{location}/orchestrationClusters/{orchestration_cluster}/blueprints/{blueprint}" 635 plural: "blueprints" 636 singular: "blueprint" 637 }; 638 639 // Approval state indicates the state of a Blueprint in its approval 640 // lifecycle. 641 enum ApprovalState { 642 // Unspecified state. 643 APPROVAL_STATE_UNSPECIFIED = 0; 644 645 // A blueprint starts in DRAFT state once it is created. All edits are made 646 // to the blueprint in DRAFT state. 647 DRAFT = 1; 648 649 // When the edits are ready for review, blueprint can be proposed and moves 650 // to PROPOSED state. Edits cannot be made to a blueprint in PROPOSED state. 651 PROPOSED = 2; 652 653 // When a proposed blueprint is approved, it moves to APPROVED state. A new 654 // revision is committed. The latest committed revision can be used to 655 // create a deployment on Orchestration or Workload Cluster. Edits to an 656 // APPROVED blueprint changes its state back to DRAFT. The last committed 657 // revision of a blueprint represents its latest APPROVED state. 658 APPROVED = 3; 659 } 660 661 // The name of the blueprint. If unspecified, the name will be autogenerated 662 // from server side. Name of the blueprint must not contain `@` character. 663 string name = 1; 664 665 // Output only. Immutable. The revision ID of the blueprint. 666 // A new revision is committed whenever a blueprint is approved. 667 string revision_id = 2 [ 668 (google.api.field_behavior) = IMMUTABLE, 669 (google.api.field_behavior) = OUTPUT_ONLY 670 ]; 671 672 // Required. Immutable. The public blueprint ID from which this blueprint was 673 // created. 674 string source_blueprint = 3 [ 675 (google.api.field_behavior) = REQUIRED, 676 (google.api.field_behavior) = IMMUTABLE 677 ]; 678 679 // Output only. The timestamp that the revision was created. 680 google.protobuf.Timestamp revision_create_time = 5 681 [(google.api.field_behavior) = OUTPUT_ONLY]; 682 683 // Output only. Approval state of the blueprint (DRAFT, PROPOSED, APPROVED) 684 ApprovalState approval_state = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 685 686 // Optional. Human readable name of a Blueprint. 687 string display_name = 7 [(google.api.field_behavior) = OPTIONAL]; 688 689 // Output only. Name of the repository where the blueprint files are stored. 690 string repository = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 691 692 // Optional. Files present in a blueprint. 693 // When invoking UpdateBlueprint API, only the modified files should be 694 // included in this. Files that are not included in the update of a blueprint 695 // will not be changed. 696 repeated File files = 9 [(google.api.field_behavior) = OPTIONAL]; 697 698 // Optional. Labels are key-value attributes that can be set on a blueprint 699 // resource by the user. 700 map<string, string> labels = 10 [(google.api.field_behavior) = OPTIONAL]; 701 702 // Output only. Blueprint creation time. 703 google.protobuf.Timestamp create_time = 11 704 [(google.api.field_behavior) = OUTPUT_ONLY]; 705 706 // Output only. The timestamp when the blueprint was updated. 707 google.protobuf.Timestamp update_time = 12 708 [(google.api.field_behavior) = OUTPUT_ONLY]; 709 710 // Output only. Source provider is the author of a public blueprint, from 711 // which this blueprint is created. 712 string source_provider = 13 [(google.api.field_behavior) = OUTPUT_ONLY]; 713 714 // Output only. DeploymentLevel of a blueprint signifies where the blueprint 715 // will be applied. e.g. [HYDRATION, SINGLE_DEPLOYMENT, MULTI_DEPLOYMENT] 716 DeploymentLevel deployment_level = 14 717 [(google.api.field_behavior) = OUTPUT_ONLY]; 718 719 // Output only. Indicates if the deployment created from this blueprint can be 720 // rolled back. 721 bool rollback_support = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; 722} 723 724// A Blueprint contains a collection of kubernetes resources in the form of 725// YAML files. The file contents of a blueprint are collectively known as 726// package. 727// Public blueprint is a TNA provided blueprint that in present in TNA's public 728// catalog. A user can copy the public blueprint to their private catalog for 729// further modifications. 730message PublicBlueprint { 731 option (google.api.resource) = { 732 type: "telcoautomation.googleapis.com/PublicBlueprint" 733 pattern: "projects/{project}/locations/{location}/publicBlueprints/{public_lueprint}" 734 plural: "publicBlueprints" 735 singular: "publicBlueprint" 736 }; 737 738 // Name of the public blueprint. 739 string name = 1; 740 741 // The display name of the public blueprint. 742 string display_name = 2; 743 744 // The description of the public blueprint. 745 string description = 3; 746 747 // DeploymentLevel of a blueprint signifies where the blueprint will be 748 // applied. e.g. [HYDRATION, SINGLE_DEPLOYMENT, MULTI_DEPLOYMENT] 749 DeploymentLevel deployment_level = 4; 750 751 // Source provider is the author of a public blueprint. e.g. Google, vendors 752 string source_provider = 5; 753 754 // Output only. Indicates if the deployment created from this blueprint can be 755 // rolled back. 756 bool rollback_support = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; 757} 758 759// Deployment contains a collection of YAML files (This collection is also known 760// as package) that can to applied on an orchestration cluster (GKE cluster with 761// TNA addons) or a workload cluster. 762message Deployment { 763 option (google.api.resource) = { 764 type: "telcoautomation.googleapis.com/Deployment" 765 pattern: "projects/{project}/locations/{location}/orchestrationClusters/{orchestration_cluster}/deployments/{deployment}" 766 plural: "deployments" 767 singular: "deployment" 768 }; 769 770 // State defines which state the current deployment is in. 771 enum State { 772 // Unspecified state. 773 STATE_UNSPECIFIED = 0; 774 775 // A deployment starts in DRAFT state. All edits are made in DRAFT state. A 776 // deployment opened for editing after applying will be in draft state, 777 // while its prevision revision will be its current applied version. 778 DRAFT = 1; 779 780 // This state means that the contents (YAML files containing kubernetes 781 // resources) of the deployment have been applied to an Orchestration or 782 // Workload Cluster. A revision is created when a deployment is applied. 783 // This revision will represent the latest view of what is applied on the 784 // cluster until the deployment is modified and applied again, which will 785 // create a new revision. 786 APPLIED = 2; 787 788 // A deployment in DELETING state has been marked for deletion. Its 789 // deletion status can be queried using `ComputeDeploymentStatus` API. No 790 // updates are allowed to a deployment in DELETING state. 791 DELETING = 3; 792 } 793 794 // The name of the deployment. 795 string name = 1; 796 797 // Output only. Immutable. The revision ID of the deployment. 798 // A new revision is committed whenever a change in deployment is applied. 799 string revision_id = 2 [ 800 (google.api.field_behavior) = IMMUTABLE, 801 (google.api.field_behavior) = OUTPUT_ONLY 802 ]; 803 804 // Required. The blueprint revision from which this deployment was created. 805 string source_blueprint_revision = 3 [(google.api.field_behavior) = REQUIRED]; 806 807 // Output only. The timestamp that the revision was created. 808 google.protobuf.Timestamp revision_create_time = 4 809 [(google.api.field_behavior) = OUTPUT_ONLY]; 810 811 // Output only. State of the deployment (DRAFT, APPLIED, DELETING). 812 State state = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 813 814 // Optional. Human readable name of a Deployment. 815 string display_name = 6 [(google.api.field_behavior) = OPTIONAL]; 816 817 // Output only. Name of the repository where the deployment package files are 818 // stored. 819 string repository = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 820 821 // Optional. Files present in a deployment. 822 // When invoking UpdateDeployment API, only the modified files should be 823 // included in this. Files that are not included in the update of a deployment 824 // will not be changed. 825 repeated File files = 8 [(google.api.field_behavior) = OPTIONAL]; 826 827 // Optional. Labels are key-value attributes that can be set on a deployment 828 // resource by the user. 829 map<string, string> labels = 9 [(google.api.field_behavior) = OPTIONAL]; 830 831 // Output only. Deployment creation time. 832 google.protobuf.Timestamp create_time = 10 833 [(google.api.field_behavior) = OUTPUT_ONLY]; 834 835 // Output only. The timestamp when the deployment was updated. 836 google.protobuf.Timestamp update_time = 11 837 [(google.api.field_behavior) = OUTPUT_ONLY]; 838 839 // Output only. Source provider is the author of a public blueprint, from 840 // which this deployment is created. 841 string source_provider = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 842 843 // Optional. Immutable. The WorkloadCluster on which to create the Deployment. 844 // This field should only be passed when the deployment_level of the source 845 // blueprint specifies deployments on workload clusters e.g. 846 // WORKLOAD_CLUSTER_DEPLOYMENT. 847 string workload_cluster = 13 [ 848 (google.api.field_behavior) = IMMUTABLE, 849 (google.api.field_behavior) = OPTIONAL 850 ]; 851 852 // Output only. Attributes to where the deployment can inflict changes. The 853 // value can only be [SINGLE_DEPLOYMENT, MULTI_DEPLOYMENT]. 854 DeploymentLevel deployment_level = 14 855 [(google.api.field_behavior) = OUTPUT_ONLY]; 856 857 // Output only. Indicates if the deployment can be rolled back, exported from 858 // public blueprint. 859 bool rollback_support = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; 860} 861 862// A collection of kubernetes yaml files which are deployed on a Workload 863// Cluster. Hydrated Deployments are created by TNA intent based automation. 864message HydratedDeployment { 865 option (google.api.resource) = { 866 type: "telcoautomation.googleapis.com/HydratedDeployment" 867 pattern: "projects/{project}/locations/{location}/orchestrationClusters/{orchestration_cluster}/deployments/{deployment}/hydratedDeployments/{hydrated_deployment}" 868 plural: "hydratedDeployments" 869 singular: "hydratedDeployment" 870 }; 871 872 // State defines which state the current hydrated deployment is in. 873 enum State { 874 // Unspecified state. 875 STATE_UNSPECIFIED = 0; 876 877 // A hydrated deployment starts in DRAFT state. All edits are made in DRAFT 878 // state. 879 DRAFT = 1; 880 881 // When the edit is applied, the hydrated deployment moves to APPLIED 882 // state. No changes can be made once a hydrated deployment is applied. 883 APPLIED = 2; 884 } 885 886 // Output only. The name of the hydrated deployment. 887 string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 888 889 // Output only. State of the hydrated deployment (DRAFT, APPLIED). 890 State state = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 891 892 // Optional. File contents of a hydrated deployment. 893 // When invoking UpdateHydratedBlueprint API, only the modified files should 894 // be included in this. Files that are not included in the update of a 895 // hydrated deployment will not be changed. 896 repeated File files = 3 [(google.api.field_behavior) = OPTIONAL]; 897 898 // Output only. WorkloadCluster identifies which workload cluster will the 899 // hydrated deployment will be deployed on. 900 string workload_cluster = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 901} 902 903// Message for requesting list of OrchestrationClusters. 904message ListOrchestrationClustersRequest { 905 // Required. Parent value for ListOrchestrationClustersRequest 906 string parent = 1 [ 907 (google.api.field_behavior) = REQUIRED, 908 (google.api.resource_reference) = { 909 child_type: "telcoautomation.googleapis.com/OrchestrationCluster" 910 } 911 ]; 912 913 // Requested page size. Server may return fewer items than requested. 914 // If unspecified, server will pick an appropriate default. 915 int32 page_size = 2; 916 917 // A token identifying a page of results the server should return. 918 string page_token = 3; 919 920 // Filtering results. 921 string filter = 4; 922 923 // Hint for how to order the results. 924 string order_by = 5; 925} 926 927// Message for response to listing OrchestrationClusters. 928message ListOrchestrationClustersResponse { 929 // The list of OrchestrationCluster 930 repeated OrchestrationCluster orchestration_clusters = 1; 931 932 // A token identifying a page of results the server should return. 933 string next_page_token = 2; 934 935 // Locations that could not be reached. 936 repeated string unreachable = 3; 937} 938 939// Message for getting a OrchestrationCluster. 940message GetOrchestrationClusterRequest { 941 // Required. Name of the resource 942 string name = 1 [ 943 (google.api.field_behavior) = REQUIRED, 944 (google.api.resource_reference) = { 945 type: "telcoautomation.googleapis.com/OrchestrationCluster" 946 } 947 ]; 948} 949 950// Message for creating a OrchestrationCluster. 951message CreateOrchestrationClusterRequest { 952 // Required. Value for parent. 953 string parent = 1 [ 954 (google.api.field_behavior) = REQUIRED, 955 (google.api.resource_reference) = { 956 child_type: "telcoautomation.googleapis.com/OrchestrationCluster" 957 } 958 ]; 959 960 // Required. Id of the requesting object 961 // If auto-generating Id server-side, remove this field and 962 // orchestration_cluster_id from the method_signature of Create RPC 963 string orchestration_cluster_id = 2 [(google.api.field_behavior) = REQUIRED]; 964 965 // Required. The resource being created 966 OrchestrationCluster orchestration_cluster = 3 967 [(google.api.field_behavior) = REQUIRED]; 968 969 // Optional. An optional request ID to identify requests. Specify a unique 970 // request ID so that if you must retry your request, the server will know to 971 // ignore the request if it has already been completed. The server will 972 // guarantee that for at least 60 minutes since the first request. 973 // 974 // For example, consider a situation where you make an initial request and 975 // the request times out. If you make the request again with the same request 976 // ID, the server can check if original operation with the same request ID 977 // was received, and if so, will ignore the second request. This prevents 978 // clients from accidentally creating duplicate commitments. 979 // 980 // The request ID must be a valid UUID with the exception that zero UUID is 981 // not supported (00000000-0000-0000-0000-000000000000). 982 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 983} 984 985// Message for deleting a OrchestrationCluster. 986message DeleteOrchestrationClusterRequest { 987 // Required. Name of the resource 988 string name = 1 [ 989 (google.api.field_behavior) = REQUIRED, 990 (google.api.resource_reference) = { 991 type: "telcoautomation.googleapis.com/OrchestrationCluster" 992 } 993 ]; 994 995 // Optional. An optional request ID to identify requests. Specify a unique 996 // request ID so that if you must retry your request, the server will know to 997 // ignore the request if it has already been completed. The server will 998 // guarantee that for at least 60 minutes after the first request. 999 // 1000 // For example, consider a situation where you make an initial request and 1001 // the request times out. If you make the request again with the same request 1002 // ID, the server can check if original operation with the same request ID 1003 // was received, and if so, will ignore the second request. This prevents 1004 // clients from accidentally creating duplicate commitments. 1005 // 1006 // The request ID must be a valid UUID with the exception that zero UUID is 1007 // not supported (00000000-0000-0000-0000-000000000000). 1008 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1009} 1010 1011// Message for requesting list of EdgeSlms 1012message ListEdgeSlmsRequest { 1013 // Required. Parent value for ListEdgeSlmsRequest 1014 string parent = 1 [ 1015 (google.api.field_behavior) = REQUIRED, 1016 (google.api.resource_reference) = { 1017 child_type: "telcoautomation.googleapis.com/EdgeSlm" 1018 } 1019 ]; 1020 1021 // Requested page size. Server may return fewer items than requested. 1022 // If unspecified, server will pick an appropriate default. 1023 int32 page_size = 2; 1024 1025 // A token identifying a page of results the server should return. 1026 string page_token = 3; 1027 1028 // Filtering results 1029 string filter = 4; 1030 1031 // Hint for how to order the results 1032 string order_by = 5; 1033} 1034 1035// Message for response to listing EdgeSlms. 1036message ListEdgeSlmsResponse { 1037 // The list of EdgeSlm 1038 repeated EdgeSlm edge_slms = 1; 1039 1040 // A token identifying a page of results the server should return. 1041 string next_page_token = 2; 1042 1043 // Locations that could not be reached. 1044 repeated string unreachable = 3; 1045} 1046 1047// Message for getting a EdgeSlm. 1048message GetEdgeSlmRequest { 1049 // Required. Name of the resource 1050 string name = 1 [ 1051 (google.api.field_behavior) = REQUIRED, 1052 (google.api.resource_reference) = { 1053 type: "telcoautomation.googleapis.com/EdgeSlm" 1054 } 1055 ]; 1056} 1057 1058// Message for creating a EdgeSlm. 1059message CreateEdgeSlmRequest { 1060 // Required. Value for parent. 1061 string parent = 1 [ 1062 (google.api.field_behavior) = REQUIRED, 1063 (google.api.resource_reference) = { 1064 child_type: "telcoautomation.googleapis.com/EdgeSlm" 1065 } 1066 ]; 1067 1068 // Required. Id of the requesting object 1069 // If auto-generating Id server-side, remove this field and 1070 // edge_slm_id from the method_signature of Create RPC 1071 string edge_slm_id = 2 [(google.api.field_behavior) = REQUIRED]; 1072 1073 // Required. The resource being created 1074 EdgeSlm edge_slm = 3 [(google.api.field_behavior) = REQUIRED]; 1075 1076 // Optional. An optional request ID to identify requests. Specify a unique 1077 // request ID so that if you must retry your request, the server will know to 1078 // ignore the request if it has already been completed. The server will 1079 // guarantee that for at least 60 minutes since the first request. 1080 // 1081 // For example, consider a situation where you make an initial request and 1082 // the request times out. If you make the request again with the same request 1083 // ID, the server can check if original operation with the same request ID 1084 // was received, and if so, will ignore the second request. This prevents 1085 // clients from accidentally creating duplicate commitments. 1086 // 1087 // The request ID must be a valid UUID with the exception that zero UUID is 1088 // not supported (00000000-0000-0000-0000-000000000000). 1089 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 1090} 1091 1092// Message for deleting a EdgeSlm. 1093message DeleteEdgeSlmRequest { 1094 // Required. Name of the resource 1095 string name = 1 [ 1096 (google.api.field_behavior) = REQUIRED, 1097 (google.api.resource_reference) = { 1098 type: "telcoautomation.googleapis.com/EdgeSlm" 1099 } 1100 ]; 1101 1102 // Optional. An optional request ID to identify requests. Specify a unique 1103 // request ID so that if you must retry your request, the server will know to 1104 // ignore the request if it has already been completed. The server will 1105 // guarantee that for at least 60 minutes after the first request. 1106 // 1107 // For example, consider a situation where you make an initial request and 1108 // the request times out. If you make the request again with the same request 1109 // ID, the server can check if original operation with the same request ID 1110 // was received, and if so, will ignore the second request. This prevents 1111 // clients from accidentally creating duplicate commitments. 1112 // 1113 // The request ID must be a valid UUID with the exception that zero UUID is 1114 // not supported (00000000-0000-0000-0000-000000000000). 1115 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1116} 1117 1118// Request object for `CreateBlueprint`. 1119message CreateBlueprintRequest { 1120 // Required. The name of parent resource. 1121 // Format should be - 1122 // "projects/{project_id}/locations/{location_name}/orchestrationClusters/{orchestration_cluster}". 1123 string parent = 1 [ 1124 (google.api.field_behavior) = REQUIRED, 1125 (google.api.resource_reference) = { 1126 child_type: "telcoautomation.googleapis.com/Blueprint" 1127 } 1128 ]; 1129 1130 // Optional. The name of the blueprint. 1131 string blueprint_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1132 1133 // Required. The `Blueprint` to create. 1134 Blueprint blueprint = 3 [(google.api.field_behavior) = REQUIRED]; 1135} 1136 1137// Request object for `UpdateBlueprint`. 1138message UpdateBlueprintRequest { 1139 // Required. The `blueprint` to update. 1140 Blueprint blueprint = 1 [(google.api.field_behavior) = REQUIRED]; 1141 1142 // Required. Update mask is used to specify the fields to be overwritten in 1143 // the `blueprint` resource by the update. 1144 google.protobuf.FieldMask update_mask = 2 1145 [(google.api.field_behavior) = REQUIRED]; 1146} 1147 1148// Request object for `GetBlueprint`. 1149message GetBlueprintRequest { 1150 // Required. The name of the blueprint. 1151 // Case 1: If the name provided in the request is 1152 // {blueprint_id}@{revision_id}, then the revision with revision_id will be 1153 // returned. Case 2: If the name provided in the request is {blueprint}, then 1154 // the current state of the blueprint is returned. 1155 string name = 1 [ 1156 (google.api.field_behavior) = REQUIRED, 1157 (google.api.resource_reference) = { 1158 type: "telcoautomation.googleapis.com/Blueprint" 1159 } 1160 ]; 1161 1162 // Optional. Defines the type of view of the blueprint. 1163 // When field is not present BLUEPRINT_VIEW_BASIC is considered as default. 1164 BlueprintView view = 2 [(google.api.field_behavior) = OPTIONAL]; 1165} 1166 1167// Request object for `DeleteBlueprint`. 1168message DeleteBlueprintRequest { 1169 // Required. The name of blueprint to delete. 1170 // Blueprint name should be in the format {blueprint_id}, if 1171 // {blueprint_id}@{revision_id} is passed then the API throws invalid 1172 // argument. 1173 string name = 1 [ 1174 (google.api.field_behavior) = REQUIRED, 1175 (google.api.resource_reference) = { 1176 type: "telcoautomation.googleapis.com/Blueprint" 1177 } 1178 ]; 1179} 1180 1181// Request object for `ListBlueprints`. 1182message ListBlueprintsRequest { 1183 // Required. The name of parent orchestration cluster resource. 1184 // Format should be - 1185 // "projects/{project_id}/locations/{location_name}/orchestrationClusters/{orchestration_cluster}". 1186 string parent = 1 [ 1187 (google.api.field_behavior) = REQUIRED, 1188 (google.api.resource_reference) = { 1189 child_type: "telcoautomation.googleapis.com/Blueprint" 1190 } 1191 ]; 1192 1193 // Optional. Filtering only supports equality on blueprint state. 1194 // It should be in the form: "state = DRAFT". `OR` operator can be used to 1195 // get response for multiple states. e.g. "state = DRAFT OR state = PROPOSED". 1196 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 1197 1198 // Optional. The maximum number of blueprints to return per page. 1199 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 1200 1201 // Optional. The page token, received from a previous ListBlueprints call. 1202 // It can be provided to retrieve the subsequent page. 1203 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 1204} 1205 1206// Response object for `ListBlueprints`. 1207message ListBlueprintsResponse { 1208 // The list of requested blueprints. 1209 repeated Blueprint blueprints = 1; 1210 1211 // A token that can be sent as `page_token` to retrieve the next page. 1212 // If this field is omitted, there are no subsequent pages. 1213 string next_page_token = 2; 1214} 1215 1216// Request object for `ApproveBlueprint`. 1217message ApproveBlueprintRequest { 1218 // Required. The name of the blueprint to approve. The blueprint must be in 1219 // Proposed state. A new revision is committed on approval. 1220 string name = 1 [ 1221 (google.api.field_behavior) = REQUIRED, 1222 (google.api.resource_reference) = { 1223 type: "telcoautomation.googleapis.com/Blueprint" 1224 } 1225 ]; 1226} 1227 1228// Request object for `ProposeBlueprint`. 1229message ProposeBlueprintRequest { 1230 // Required. The name of the blueprint being proposed. 1231 string name = 1 [ 1232 (google.api.field_behavior) = REQUIRED, 1233 (google.api.resource_reference) = { 1234 type: "telcoautomation.googleapis.com/Blueprint" 1235 } 1236 ]; 1237} 1238 1239// Request object for `RejectBlueprint`. 1240message RejectBlueprintRequest { 1241 // Required. The name of the blueprint being rejected. 1242 string name = 1 [ 1243 (google.api.field_behavior) = REQUIRED, 1244 (google.api.resource_reference) = { 1245 type: "telcoautomation.googleapis.com/Blueprint" 1246 } 1247 ]; 1248} 1249 1250// Request object for `ListBlueprintRevisions`. 1251message ListBlueprintRevisionsRequest { 1252 // Required. The name of the blueprint to list revisions for. 1253 string name = 1 [ 1254 (google.api.field_behavior) = REQUIRED, 1255 (google.api.resource_reference) = { 1256 type: "telcoautomation.googleapis.com/Blueprint" 1257 } 1258 ]; 1259 1260 // The maximum number of revisions to return per page. 1261 int32 page_size = 2; 1262 1263 // The page token, received from a previous ListBlueprintRevisions call 1264 // It can be provided to retrieve the subsequent page. 1265 string page_token = 3; 1266} 1267 1268// Response object for `ListBlueprintRevisions`. 1269message ListBlueprintRevisionsResponse { 1270 // The revisions of the blueprint. 1271 repeated Blueprint blueprints = 1; 1272 1273 // A token that can be sent as `page_token` to retrieve the next page. 1274 // If this field is omitted, there are no subsequent pages. 1275 string next_page_token = 2; 1276} 1277 1278// Request object for `SearchBlueprintRevisions`. 1279message SearchBlueprintRevisionsRequest { 1280 // Required. The name of parent orchestration cluster resource. 1281 // Format should be - 1282 // "projects/{project_id}/locations/{location_name}/orchestrationClusters/{orchestration_cluster}". 1283 string parent = 1 [ 1284 (google.api.field_behavior) = REQUIRED, 1285 (google.api.resource_reference) = { 1286 child_type: "telcoautomation.googleapis.com/Blueprint" 1287 } 1288 ]; 1289 1290 // Required. Supported queries: 1291 // 1. "" : Lists all revisions across all blueprints. 1292 // 2. "latest=true" : Lists latest revisions across all blueprints. 1293 // 3. "name={name}" : Lists all revisions of blueprint with name 1294 // {name}. 1295 // 4. "name={name} latest=true": Lists latest revision of blueprint with name 1296 // {name} 1297 string query = 2 [(google.api.field_behavior) = REQUIRED]; 1298 1299 // Optional. The maximum number of blueprints revisions to return per page. 1300 // max page size = 100, default page size = 20. 1301 int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; 1302 1303 // Optional. The page token, received from a previous search call. 1304 // It can be provided to retrieve the subsequent page. 1305 string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; 1306} 1307 1308// Response object for `SearchBlueprintRevisions`. 1309message SearchBlueprintRevisionsResponse { 1310 // The list of requested blueprint revisions. 1311 repeated Blueprint blueprints = 1; 1312 1313 // A token that can be sent as `page_token` to retrieve the next page. 1314 // If this field is omitted, there are no subsequent pages. 1315 string next_page_token = 2; 1316} 1317 1318// Request object for `DiscardBlueprintChanges`. 1319message DiscardBlueprintChangesRequest { 1320 // Required. The name of the blueprint of which changes are being discarded. 1321 string name = 1 [ 1322 (google.api.field_behavior) = REQUIRED, 1323 (google.api.resource_reference) = { 1324 type: "telcoautomation.googleapis.com/Blueprint" 1325 } 1326 ]; 1327} 1328 1329// Response object for `DiscardBlueprintChanges`. 1330message DiscardBlueprintChangesResponse {} 1331 1332// Request object for `ListPublicBlueprints`. 1333message ListPublicBlueprintsRequest { 1334 // Required. Parent value of public blueprint. 1335 // Format should be - 1336 // "projects/{project_id}/locations/{location_name}". 1337 string parent = 1 [ 1338 (google.api.field_behavior) = REQUIRED, 1339 (google.api.resource_reference) = { 1340 child_type: "telcoautomation.googleapis.com/PublicBlueprint" 1341 } 1342 ]; 1343 1344 // Optional. Requested page size. Server may return fewer items than 1345 // requested. If unspecified, server will pick an appropriate default. 1346 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 1347 1348 // Optional. A token identifying a page of results the server should return. 1349 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 1350} 1351 1352// Response object for `ListPublicBlueprints`. 1353message ListPublicBlueprintsResponse { 1354 // The list of public blueprints to return. 1355 repeated PublicBlueprint public_blueprints = 1; 1356 1357 // Output only. A token identifying a page of results the server should 1358 // return. 1359 string next_page_token = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1360} 1361 1362// Request object for `GetPublicBlueprint`. 1363message GetPublicBlueprintRequest { 1364 // Required. The name of the public blueprint. 1365 string name = 1 [ 1366 (google.api.field_behavior) = REQUIRED, 1367 (google.api.resource_reference) = { 1368 type: "telcoautomation.googleapis.com/PublicBlueprint" 1369 } 1370 ]; 1371} 1372 1373// Request object for `CreateDeployment`. 1374message CreateDeploymentRequest { 1375 // Required. The name of parent resource. 1376 // Format should be - 1377 // "projects/{project_id}/locations/{location_name}/orchestrationClusters/{orchestration_cluster}". 1378 string parent = 1 [ 1379 (google.api.field_behavior) = REQUIRED, 1380 (google.api.resource_reference) = { 1381 child_type: "telcoautomation.googleapis.com/Deployment" 1382 } 1383 ]; 1384 1385 // Optional. The name of the deployment. 1386 string deployment_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1387 1388 // Required. The `Deployment` to create. 1389 Deployment deployment = 3 [(google.api.field_behavior) = REQUIRED]; 1390} 1391 1392// Request object for `UpdateDeployment`. 1393message UpdateDeploymentRequest { 1394 // Required. The `deployment` to update. 1395 Deployment deployment = 1 [(google.api.field_behavior) = REQUIRED]; 1396 1397 // Required. Update mask is used to specify the fields to be overwritten in 1398 // the `deployment` resource by the update. 1399 google.protobuf.FieldMask update_mask = 2 1400 [(google.api.field_behavior) = REQUIRED]; 1401} 1402 1403// Request object for `GetDeployment`. 1404message GetDeploymentRequest { 1405 // Required. The name of the deployment. 1406 // Case 1: If the name provided in the request is 1407 // {deployment_id}@{revision_id}, then the revision with revision_id will be 1408 // returned. 1409 // Case 2: If the name provided in the request is {deployment}, then 1410 // the current state of the deployment is returned. 1411 string name = 1 [ 1412 (google.api.field_behavior) = REQUIRED, 1413 (google.api.resource_reference) = { 1414 type: "telcoautomation.googleapis.com/Deployment" 1415 } 1416 ]; 1417 1418 // Optional. Defines the type of view of the deployment. 1419 // When field is not present VIEW_BASIC is considered as default. 1420 DeploymentView view = 2 [(google.api.field_behavior) = OPTIONAL]; 1421} 1422 1423// Request object for `RemoveDeployment`. 1424message RemoveDeploymentRequest { 1425 // Required. The name of deployment to initiate delete. 1426 string name = 1 [ 1427 (google.api.field_behavior) = REQUIRED, 1428 (google.api.resource_reference) = { 1429 type: "telcoautomation.googleapis.com/Deployment" 1430 } 1431 ]; 1432} 1433 1434// Request object for `ListDeployments`. 1435message ListDeploymentsRequest { 1436 // Required. The name of parent orchestration cluster resource. 1437 // Format should be - 1438 // "projects/{project_id}/locations/{location_name}/orchestrationClusters/{orchestration_cluster}". 1439 string parent = 1 [ 1440 (google.api.field_behavior) = REQUIRED, 1441 (google.api.resource_reference) = { 1442 child_type: "telcoautomation.googleapis.com/Deployment" 1443 } 1444 ]; 1445 1446 // Optional. Filtering only supports equality on deployment state. 1447 // It should be in the form: "state = DRAFT". `OR` operator can be used to 1448 // get response for multiple states. e.g. "state = DRAFT OR state = APPLIED". 1449 string filter = 4 [(google.api.field_behavior) = OPTIONAL]; 1450 1451 // Optional. The maximum number of deployments to return per page. 1452 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 1453 1454 // Optional. The page token, received from a previous ListDeployments call. 1455 // It can be provided to retrieve the subsequent page. 1456 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 1457} 1458 1459// Response object for `ListDeployments`. 1460message ListDeploymentsResponse { 1461 // The list of requested deployments. 1462 repeated Deployment deployments = 1; 1463 1464 // A token that can be sent as `page_token` to retrieve the next page. 1465 // If this field is omitted, there are no subsequent pages. 1466 string next_page_token = 2; 1467} 1468 1469// Request for listing all revisions of a deployment. 1470message ListDeploymentRevisionsRequest { 1471 // Required. The name of the deployment to list revisions for. 1472 string name = 1 [ 1473 (google.api.field_behavior) = REQUIRED, 1474 (google.api.resource_reference) = { 1475 type: "telcoautomation.googleapis.com/Deployment" 1476 } 1477 ]; 1478 1479 // Optional. The maximum number of revisions to return per page. 1480 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 1481 1482 // Optional. The page token, received from a previous ListDeploymentRevisions 1483 // call Provide this to retrieve the subsequent page. 1484 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 1485} 1486 1487// List of deployment revisions for a given deployment. 1488message ListDeploymentRevisionsResponse { 1489 // The revisions of the deployment. 1490 repeated Deployment deployments = 1; 1491 1492 // A token that can be sent as `page_token` to retrieve the next page. 1493 // If this field is omitted, there are no subsequent pages. 1494 string next_page_token = 2; 1495} 1496 1497// Request object for `SearchDeploymentRevisions`. 1498message SearchDeploymentRevisionsRequest { 1499 // Required. The name of parent orchestration cluster resource. 1500 // Format should be - 1501 // "projects/{project_id}/locations/{location_name}/orchestrationClusters/{orchestration_cluster}". 1502 string parent = 1 [ 1503 (google.api.field_behavior) = REQUIRED, 1504 (google.api.resource_reference) = { 1505 child_type: "telcoautomation.googleapis.com/Blueprint" 1506 } 1507 ]; 1508 1509 // Required. Supported queries: 1510 // 1. "" : Lists all revisions across all deployments. 1511 // 2. "latest=true" : Lists latest revisions across all 1512 // deployments. 1513 // 3. "name={name}" : Lists all revisions of deployment with name 1514 // {name}. 1515 // 4. "name={name} latest=true": Lists latest revision of deployment with name 1516 // {name} 1517 string query = 2 [(google.api.field_behavior) = REQUIRED]; 1518 1519 // Optional. The maximum number of deployment revisions to return per page. 1520 // max page size = 100, default page size = 20. 1521 int32 page_size = 3 [(google.api.field_behavior) = OPTIONAL]; 1522 1523 // Optional. The page token, received from a previous search call. 1524 // It can be provided to retrieve the subsequent page. 1525 string page_token = 4 [(google.api.field_behavior) = OPTIONAL]; 1526} 1527 1528// Response object for `SearchDeploymentRevisions`. 1529message SearchDeploymentRevisionsResponse { 1530 // The list of requested deployment revisions. 1531 repeated Deployment deployments = 1; 1532 1533 // A token that can be sent as `page_token` to retrieve the next page. 1534 // If this field is omitted, there are no subsequent pages. 1535 string next_page_token = 2; 1536} 1537 1538// Request object for `DiscardDeploymentChanges`. 1539message DiscardDeploymentChangesRequest { 1540 // Required. The name of the deployment of which changes are being discarded. 1541 string name = 1 [ 1542 (google.api.field_behavior) = REQUIRED, 1543 (google.api.resource_reference) = { 1544 type: "telcoautomation.googleapis.com/Deployment" 1545 } 1546 ]; 1547} 1548 1549// Response object for `DiscardDeploymentChanges`. 1550message DiscardDeploymentChangesResponse {} 1551 1552// Request object for `ApplyDeployment`. The resources in given deployment 1553// gets applied to Orchestration Cluster. A new revision is created when a 1554// deployment is applied. 1555message ApplyDeploymentRequest { 1556 // Required. The name of the deployment to apply to orchestration cluster. 1557 string name = 1 [ 1558 (google.api.field_behavior) = REQUIRED, 1559 (google.api.resource_reference) = { 1560 type: "telcoautomation.googleapis.com/Deployment" 1561 } 1562 ]; 1563} 1564 1565// Request object for `ComputeDeploymentStatus`. 1566message ComputeDeploymentStatusRequest { 1567 // Required. The name of the deployment without revisionID. 1568 string name = 1 [ 1569 (google.api.field_behavior) = REQUIRED, 1570 (google.api.resource_reference) = { 1571 type: "telcoautomation.googleapis.com/Deployment" 1572 } 1573 ]; 1574} 1575 1576// Response object for `ComputeDeploymentStatus`. 1577message ComputeDeploymentStatusResponse { 1578 // The name of the deployment. 1579 string name = 1; 1580 1581 // Output only. Aggregated status of a deployment. 1582 Status aggregated_status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1583 1584 // Output only. Resource level status details in deployments. 1585 repeated ResourceStatus resource_statuses = 3 1586 [(google.api.field_behavior) = OUTPUT_ONLY]; 1587} 1588 1589// Request object for `RollbackDeployment`. 1590message RollbackDeploymentRequest { 1591 // Required. Name of the deployment. 1592 string name = 1 [ 1593 (google.api.field_behavior) = REQUIRED, 1594 (google.api.resource_reference) = { 1595 type: "telcoautomation.googleapis.com/Deployment" 1596 } 1597 ]; 1598 1599 // Required. The revision id of deployment to roll back to. 1600 string revision_id = 2 [(google.api.field_behavior) = REQUIRED]; 1601} 1602 1603// Represents the metadata of the long-running operation. 1604message OperationMetadata { 1605 // Output only. The time the operation was created. 1606 google.protobuf.Timestamp create_time = 1 1607 [(google.api.field_behavior) = OUTPUT_ONLY]; 1608 1609 // Output only. The time the operation finished running. 1610 google.protobuf.Timestamp end_time = 2 1611 [(google.api.field_behavior) = OUTPUT_ONLY]; 1612 1613 // Output only. Server-defined resource path for the target of the operation. 1614 string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1615 1616 // Output only. Name of the verb executed by the operation. 1617 string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 1618 1619 // Output only. Human-readable status of the operation, if any. 1620 string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 1621 1622 // Output only. Identifies whether the user has requested cancellation 1623 // of the operation. Operations that have been cancelled successfully 1624 // have [Operation.error][] value with a 1625 // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to 1626 // `Code.CANCELLED`. 1627 bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 1628 1629 // Output only. API version used to start the operation. 1630 string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 1631} 1632 1633// Request object for `GetHydratedDeployment`. 1634message GetHydratedDeploymentRequest { 1635 // Required. Name of the hydrated deployment. 1636 string name = 1 [ 1637 (google.api.field_behavior) = REQUIRED, 1638 (google.api.resource_reference) = { 1639 type: "telcoautomation.googleapis.com/HydratedDeployment" 1640 } 1641 ]; 1642} 1643 1644// Request object for `ListHydratedDeployments`. 1645message ListHydratedDeploymentsRequest { 1646 // Required. The deployment managing the hydrated deployments. 1647 string parent = 1 [ 1648 (google.api.field_behavior) = REQUIRED, 1649 (google.api.resource_reference) = { 1650 child_type: "telcoautomation.googleapis.com/HydratedDeployment" 1651 } 1652 ]; 1653 1654 // Optional. The maximum number of hydrated deployments to return. The service 1655 // may return fewer than this value. If unspecified, at most 50 hydrated 1656 // deployments will be returned. The maximum value is 1000. Values above 1000 1657 // will be set to 1000. 1658 int32 page_size = 2 [(google.api.field_behavior) = OPTIONAL]; 1659 1660 // Optional. The page token, received from a previous ListHydratedDeployments 1661 // call. Provide this to retrieve the subsequent page. 1662 string page_token = 3 [(google.api.field_behavior) = OPTIONAL]; 1663} 1664 1665// Response object for `ListHydratedDeployments`. 1666message ListHydratedDeploymentsResponse { 1667 // The list of hydrated deployments. 1668 repeated HydratedDeployment hydrated_deployments = 1; 1669 1670 // A token that can be sent as `page_token` to retrieve the next page. 1671 // If this field is omitted, there are no subsequent pages. 1672 string next_page_token = 2; 1673} 1674 1675// Request object for `UpdateHydratedDeployment`. 1676message UpdateHydratedDeploymentRequest { 1677 // Required. The hydrated deployment to update. 1678 HydratedDeployment hydrated_deployment = 1 1679 [(google.api.field_behavior) = REQUIRED]; 1680 1681 // Required. The list of fields to update. Update mask supports a special 1682 // value `*` which fully replaces (equivalent to PUT) the resource provided. 1683 google.protobuf.FieldMask update_mask = 2 1684 [(google.api.field_behavior) = REQUIRED]; 1685} 1686 1687// Request for applying a hydrated deployment. 1688message ApplyHydratedDeploymentRequest { 1689 // Required. The name of the hydrated deployment to apply. 1690 string name = 1 [ 1691 (google.api.field_behavior) = REQUIRED, 1692 (google.api.resource_reference) = { 1693 type: "telcoautomation.googleapis.com/HydratedDeployment" 1694 } 1695 ]; 1696} 1697 1698// Configuration of the cluster management 1699message ManagementConfig { 1700 // The configuration can be one of StandardManagementConfig 1701 // and FullManagementConfig 1702 oneof oneof_config { 1703 // Configuration of the standard (GKE) cluster management 1704 StandardManagementConfig standard_management_config = 1; 1705 1706 // Configuration of the full (Autopilot) cluster management. Full cluster 1707 // management is a preview feature. 1708 FullManagementConfig full_management_config = 2; 1709 } 1710} 1711 1712// Configuration of the standard (GKE) cluster management. 1713message StandardManagementConfig { 1714 // Optional. Name of the VPC Network to put the GKE cluster and nodes in. The 1715 // VPC will be created if it doesn't exist. 1716 string network = 1 [(google.api.field_behavior) = OPTIONAL]; 1717 1718 // Optional. Specifies the subnet that the interface will be part of. Network 1719 // key must be specified and the subnet must be a subnetwork of the specified 1720 // network. 1721 string subnet = 2 [(google.api.field_behavior) = OPTIONAL]; 1722 1723 // Optional. The /28 network that the masters will use. It should be free 1724 // within the network. 1725 string master_ipv4_cidr_block = 3 [(google.api.field_behavior) = OPTIONAL]; 1726 1727 // Optional. The IP address range for the cluster pod IPs. Set to blank to 1728 // have a range chosen with the default size. Set to /netmask (e.g. /14) to 1729 // have a range chosen with a specific netmask. Set to a CIDR notation 1730 // (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 1731 // 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. 1732 string cluster_cidr_block = 4 [(google.api.field_behavior) = OPTIONAL]; 1733 1734 // Optional. The IP address range for the cluster service IPs. Set to blank to 1735 // have a range chosen with the default size. Set to /netmask (e.g. /14) to 1736 // have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 1737 // 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 1738 // 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. 1739 string services_cidr_block = 5 [(google.api.field_behavior) = OPTIONAL]; 1740 1741 // Optional. The name of the existing secondary range in the cluster's 1742 // subnetwork to use for pod IP addresses. Alternatively, cluster_cidr_block 1743 // can be used to automatically create a GKE-managed one. 1744 string cluster_named_range = 6 [(google.api.field_behavior) = OPTIONAL]; 1745 1746 // Optional. The name of the existing secondary range in the cluster's 1747 // subnetwork to use for service ClusterIPs. Alternatively, 1748 // services_cidr_block can be used to automatically create a GKE-managed one. 1749 string services_named_range = 7 [(google.api.field_behavior) = OPTIONAL]; 1750 1751 // Optional. Master Authorized Network that supports multiple CIDR blocks. 1752 // Allows access to the k8s master from multiple blocks. It cannot be set at 1753 // the same time with the field man_block. 1754 MasterAuthorizedNetworksConfig master_authorized_networks_config = 8 1755 [(google.api.field_behavior) = OPTIONAL]; 1756} 1757 1758// Configuration of the full (Autopilot) cluster management 1759message FullManagementConfig { 1760 // Optional. Name of the VPC Network to put the GKE cluster and nodes in. The 1761 // VPC will be created if it doesn't exist. 1762 string network = 1 [(google.api.field_behavior) = OPTIONAL]; 1763 1764 // Optional. Specifies the subnet that the interface will be part of. Network 1765 // key must be specified and the subnet must be a subnetwork of the specified 1766 // network. 1767 string subnet = 2 [(google.api.field_behavior) = OPTIONAL]; 1768 1769 // Optional. The /28 network that the masters will use. 1770 string master_ipv4_cidr_block = 3 [(google.api.field_behavior) = OPTIONAL]; 1771 1772 // Optional. The IP address range for the cluster pod IPs. Set to blank to 1773 // have a range chosen with the default size. Set to /netmask (e.g. /14) to 1774 // have a range chosen with a specific netmask. Set to a CIDR notation 1775 // (e.g. 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 1776 // 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. 1777 string cluster_cidr_block = 4 [(google.api.field_behavior) = OPTIONAL]; 1778 1779 // Optional. The IP address range for the cluster service IPs. Set to blank to 1780 // have a range chosen with the default size. Set to /netmask (e.g. /14) to 1781 // have a range chosen with a specific netmask. Set to a CIDR notation (e.g. 1782 // 10.96.0.0/14) from the RFC-1918 private networks (e.g. 10.0.0.0/8, 1783 // 172.16.0.0/12, 192.168.0.0/16) to pick a specific range to use. 1784 string services_cidr_block = 5 [(google.api.field_behavior) = OPTIONAL]; 1785 1786 // Optional. The name of the existing secondary range in the cluster's 1787 // subnetwork to use for pod IP addresses. Alternatively, cluster_cidr_block 1788 // can be used to automatically create a GKE-managed one. 1789 string cluster_named_range = 6 [(google.api.field_behavior) = OPTIONAL]; 1790 1791 // Optional. The name of the existing secondary range in the cluster's 1792 // subnetwork to use for service ClusterIPs. Alternatively, 1793 // services_cidr_block can be used to automatically create a GKE-managed one. 1794 string services_named_range = 7 [(google.api.field_behavior) = OPTIONAL]; 1795 1796 // Optional. Master Authorized Network that supports multiple CIDR blocks. 1797 // Allows access to the k8s master from multiple blocks. It cannot be set at 1798 // the same time with the field man_block. 1799 MasterAuthorizedNetworksConfig master_authorized_networks_config = 8 1800 [(google.api.field_behavior) = OPTIONAL]; 1801} 1802 1803// Configuration of the Master Authorized Network that support multiple CIDRs 1804message MasterAuthorizedNetworksConfig { 1805 // CidrBlock contains an optional name and one CIDR block. 1806 message CidrBlock { 1807 // Optional. display_name is an optional field for users to identify CIDR 1808 // blocks. 1809 string display_name = 1 [(google.api.field_behavior) = OPTIONAL]; 1810 1811 // Optional. cidr_block must be specified in CIDR notation when using 1812 // master_authorized_networks_config. Currently, the user could still use 1813 // the deprecated man_block field, so this field is currently optional, but 1814 // will be required in the future. 1815 string cidr_block = 2 [(google.api.field_behavior) = OPTIONAL]; 1816 } 1817 1818 // Optional. cidr_blocks define up to 50 external networks that could access 1819 // Kubernetes master through HTTPS. 1820 repeated CidrBlock cidr_blocks = 1 [(google.api.field_behavior) = OPTIONAL]; 1821} 1822 1823// File represents a yaml file present in a blueprint's package. 1824message File { 1825 // Required. Path of the file in package. 1826 // e.g. `gdce/v1/cluster.yaml` 1827 string path = 1 [(google.api.field_behavior) = REQUIRED]; 1828 1829 // Optional. The contents of a file in string format. 1830 string content = 2 [(google.api.field_behavior) = OPTIONAL]; 1831 1832 // Optional. Signifies whether a file is marked for deletion. 1833 bool deleted = 3 [(google.api.field_behavior) = OPTIONAL]; 1834 1835 // Optional. Indicates whether changes are allowed to a file. If the field is 1836 // not set, the file cannot be edited. 1837 bool editable = 4 [(google.api.field_behavior) = OPTIONAL]; 1838} 1839 1840// Status of a deployment resource. 1841message ResourceStatus { 1842 // Name of the resource. 1843 string name = 1; 1844 1845 // Namespace of the resource. 1846 string resource_namespace = 2; 1847 1848 // Group to which the resource belongs to. 1849 string group = 3; 1850 1851 // Version of the resource. 1852 string version = 4; 1853 1854 // Kind of the resource. 1855 string kind = 5; 1856 1857 // Output only. Resource type. 1858 ResourceType resource_type = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 1859 1860 // Output only. Status of the resource. 1861 Status status = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 1862 1863 // Output only. Detailed status of NFDeploy. 1864 NFDeployStatus nf_deploy_status = 8 1865 [(google.api.field_behavior) = OUTPUT_ONLY]; 1866} 1867 1868// Deployment status of NFDeploy. 1869message NFDeployStatus { 1870 // Output only. Total number of NFs targeted by this deployment 1871 int32 targeted_nfs = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1872 1873 // Output only. Total number of NFs targeted by this deployment with a Ready 1874 // Condition set. 1875 int32 ready_nfs = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1876 1877 // Output only. Per-Site Status. 1878 repeated NFDeploySiteStatus sites = 3 1879 [(google.api.field_behavior) = OUTPUT_ONLY]; 1880} 1881 1882// Per-Site Status. 1883message NFDeploySiteStatus { 1884 // Output only. Site id. 1885 string site = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1886 1887 // Output only. If true, the Site Deletion is in progress. 1888 bool pending_deletion = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1889 1890 // Output only. Hydration status. 1891 HydrationStatus hydration = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1892 1893 // Output only. Workload status. 1894 WorkloadStatus workload = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 1895} 1896 1897// Hydration status. 1898message HydrationStatus { 1899 // Output only. SiteVersion Hydration is targeting. 1900 SiteVersion site_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1901 1902 // Output only. Status. 1903 string status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1904} 1905 1906// SiteVersion Hydration is targeting. 1907message SiteVersion { 1908 // Output only. NF vendor. 1909 string nf_vendor = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1910 1911 // Output only. NF vendor type. 1912 string nf_type = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1913 1914 // Output only. NF version. 1915 string nf_version = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 1916} 1917 1918// Workload status. 1919message WorkloadStatus { 1920 // Output only. SiteVersion running in the workload cluster. 1921 SiteVersion site_version = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1922 1923 // Output only. Status. 1924 string status = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1925} 1926