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.edgenetwork.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/cloud/edgenetwork/v1/resources.proto"; 24import "google/longrunning/operations.proto"; 25import "google/protobuf/empty.proto"; 26import "google/protobuf/field_mask.proto"; 27import "google/protobuf/timestamp.proto"; 28 29option csharp_namespace = "Google.Cloud.EdgeNetwork.V1"; 30option go_package = "cloud.google.com/go/edgenetwork/apiv1/edgenetworkpb;edgenetworkpb"; 31option java_multiple_files = true; 32option java_outer_classname = "ServiceProto"; 33option java_package = "com.google.cloud.edgenetwork.v1"; 34option php_namespace = "Google\\Cloud\\EdgeNetwork\\V1"; 35option ruby_package = "Google::Cloud::EdgeNetwork::V1"; 36 37// EdgeNetwork API provides managed, highly available cloud dynamic network 38// configuration service to the GEC customer to enable edge application and 39// network function solutions. This allows the customers to easily define and 40// configure the network setup and property to meet the workload requirement. 41service EdgeNetwork { 42 option (google.api.default_host) = "edgenetwork.googleapis.com"; 43 option (google.api.oauth_scopes) = 44 "https://www.googleapis.com/auth/cloud-platform"; 45 46 // InitializeZone will initialize resources for a zone in a project. 47 rpc InitializeZone(InitializeZoneRequest) returns (InitializeZoneResponse) { 48 option (google.api.http) = { 49 post: "/v1/{name=projects/*/locations/*/zones/*}:initialize" 50 body: "*" 51 }; 52 option (google.api.method_signature) = "name"; 53 } 54 55 // Deprecated: not implemented. 56 // Lists Zones in a given project and location. 57 rpc ListZones(ListZonesRequest) returns (ListZonesResponse) { 58 option deprecated = true; 59 option (google.api.http) = { 60 get: "/v1/{parent=projects/*/locations/*}/zones" 61 }; 62 option (google.api.method_signature) = "parent"; 63 } 64 65 // Deprecated: not implemented. 66 // Gets details of a single Zone. 67 rpc GetZone(GetZoneRequest) returns (Zone) { 68 option deprecated = true; 69 option (google.api.http) = { 70 get: "/v1/{name=projects/*/locations/*/zones/*}" 71 }; 72 option (google.api.method_signature) = "name"; 73 } 74 75 // Lists Networks in a given project and location. 76 rpc ListNetworks(ListNetworksRequest) returns (ListNetworksResponse) { 77 option (google.api.http) = { 78 get: "/v1/{parent=projects/*/locations/*/zones/*}/networks" 79 }; 80 option (google.api.method_signature) = "parent"; 81 } 82 83 // Gets details of a single Network. 84 rpc GetNetwork(GetNetworkRequest) returns (Network) { 85 option (google.api.http) = { 86 get: "/v1/{name=projects/*/locations/*/zones/*/networks/*}" 87 }; 88 option (google.api.method_signature) = "name"; 89 } 90 91 // Get the diagnostics of a single network resource. 92 rpc DiagnoseNetwork(DiagnoseNetworkRequest) 93 returns (DiagnoseNetworkResponse) { 94 option (google.api.http) = { 95 get: "/v1/{name=projects/*/locations/*/zones/*/networks/*}:diagnose" 96 }; 97 option (google.api.method_signature) = "name"; 98 } 99 100 // Creates a new Network in a given project and location. 101 rpc CreateNetwork(CreateNetworkRequest) 102 returns (google.longrunning.Operation) { 103 option (google.api.http) = { 104 post: "/v1/{parent=projects/*/locations/*/zones/*}/networks" 105 body: "network" 106 }; 107 option (google.api.method_signature) = "parent,network,network_id"; 108 option (google.longrunning.operation_info) = { 109 response_type: "Network" 110 metadata_type: "OperationMetadata" 111 }; 112 } 113 114 // Deletes a single Network. 115 rpc DeleteNetwork(DeleteNetworkRequest) 116 returns (google.longrunning.Operation) { 117 option (google.api.http) = { 118 delete: "/v1/{name=projects/*/locations/*/zones/*/networks/*}" 119 }; 120 option (google.api.method_signature) = "name"; 121 option (google.longrunning.operation_info) = { 122 response_type: "google.protobuf.Empty" 123 metadata_type: "OperationMetadata" 124 }; 125 } 126 127 // Lists Subnets in a given project and location. 128 rpc ListSubnets(ListSubnetsRequest) returns (ListSubnetsResponse) { 129 option (google.api.http) = { 130 get: "/v1/{parent=projects/*/locations/*/zones/*}/subnets" 131 }; 132 option (google.api.method_signature) = "parent"; 133 } 134 135 // Gets details of a single Subnet. 136 rpc GetSubnet(GetSubnetRequest) returns (Subnet) { 137 option (google.api.http) = { 138 get: "/v1/{name=projects/*/locations/*/zones/*/subnets/*}" 139 }; 140 option (google.api.method_signature) = "name"; 141 } 142 143 // Creates a new Subnet in a given project and location. 144 rpc CreateSubnet(CreateSubnetRequest) returns (google.longrunning.Operation) { 145 option (google.api.http) = { 146 post: "/v1/{parent=projects/*/locations/*/zones/*}/subnets" 147 body: "subnet" 148 }; 149 option (google.api.method_signature) = "parent,subnet,subnet_id"; 150 option (google.longrunning.operation_info) = { 151 response_type: "Subnet" 152 metadata_type: "OperationMetadata" 153 }; 154 } 155 156 // Updates the parameters of a single Subnet. 157 rpc UpdateSubnet(UpdateSubnetRequest) returns (google.longrunning.Operation) { 158 option (google.api.http) = { 159 patch: "/v1/{subnet.name=projects/*/locations/*/zones/*/subnets/*}" 160 body: "subnet" 161 }; 162 option (google.api.method_signature) = "subnet,update_mask"; 163 option (google.longrunning.operation_info) = { 164 response_type: "Subnet" 165 metadata_type: "OperationMetadata" 166 }; 167 } 168 169 // Deletes a single Subnet. 170 rpc DeleteSubnet(DeleteSubnetRequest) returns (google.longrunning.Operation) { 171 option (google.api.http) = { 172 delete: "/v1/{name=projects/*/locations/*/zones/*/subnets/*}" 173 }; 174 option (google.api.method_signature) = "name"; 175 option (google.longrunning.operation_info) = { 176 response_type: "google.protobuf.Empty" 177 metadata_type: "OperationMetadata" 178 }; 179 } 180 181 // Lists Interconnects in a given project and location. 182 rpc ListInterconnects(ListInterconnectsRequest) 183 returns (ListInterconnectsResponse) { 184 option (google.api.http) = { 185 get: "/v1/{parent=projects/*/locations/*/zones/*}/interconnects" 186 }; 187 option (google.api.method_signature) = "parent"; 188 } 189 190 // Gets details of a single Interconnect. 191 rpc GetInterconnect(GetInterconnectRequest) returns (Interconnect) { 192 option (google.api.http) = { 193 get: "/v1/{name=projects/*/locations/*/zones/*/interconnects/*}" 194 }; 195 option (google.api.method_signature) = "name"; 196 } 197 198 // Get the diagnostics of a single interconnect resource. 199 rpc DiagnoseInterconnect(DiagnoseInterconnectRequest) 200 returns (DiagnoseInterconnectResponse) { 201 option (google.api.http) = { 202 get: "/v1/{name=projects/*/locations/*/zones/*/interconnects/*}:diagnose" 203 }; 204 option (google.api.method_signature) = "name"; 205 } 206 207 // Lists InterconnectAttachments in a given project and location. 208 rpc ListInterconnectAttachments(ListInterconnectAttachmentsRequest) 209 returns (ListInterconnectAttachmentsResponse) { 210 option (google.api.http) = { 211 get: "/v1/{parent=projects/*/locations/*/zones/*}/interconnectAttachments" 212 }; 213 option (google.api.method_signature) = "parent"; 214 } 215 216 // Gets details of a single InterconnectAttachment. 217 rpc GetInterconnectAttachment(GetInterconnectAttachmentRequest) 218 returns (InterconnectAttachment) { 219 option (google.api.http) = { 220 get: "/v1/{name=projects/*/locations/*/zones/*/interconnectAttachments/*}" 221 }; 222 option (google.api.method_signature) = "name"; 223 } 224 225 // Creates a new InterconnectAttachment in a given project and location. 226 rpc CreateInterconnectAttachment(CreateInterconnectAttachmentRequest) 227 returns (google.longrunning.Operation) { 228 option (google.api.http) = { 229 post: "/v1/{parent=projects/*/locations/*/zones/*}/interconnectAttachments" 230 body: "interconnect_attachment" 231 }; 232 option (google.api.method_signature) = 233 "parent,interconnect_attachment,interconnect_attachment_id"; 234 option (google.longrunning.operation_info) = { 235 response_type: "InterconnectAttachment" 236 metadata_type: "OperationMetadata" 237 }; 238 } 239 240 // Deletes a single InterconnectAttachment. 241 rpc DeleteInterconnectAttachment(DeleteInterconnectAttachmentRequest) 242 returns (google.longrunning.Operation) { 243 option (google.api.http) = { 244 delete: "/v1/{name=projects/*/locations/*/zones/*/interconnectAttachments/*}" 245 }; 246 option (google.api.method_signature) = "name"; 247 option (google.longrunning.operation_info) = { 248 response_type: "google.protobuf.Empty" 249 metadata_type: "OperationMetadata" 250 }; 251 } 252 253 // Lists Routers in a given project and location. 254 rpc ListRouters(ListRoutersRequest) returns (ListRoutersResponse) { 255 option (google.api.http) = { 256 get: "/v1/{parent=projects/*/locations/*/zones/*}/routers" 257 }; 258 option (google.api.method_signature) = "parent"; 259 } 260 261 // Gets details of a single Router. 262 rpc GetRouter(GetRouterRequest) returns (Router) { 263 option (google.api.http) = { 264 get: "/v1/{name=projects/*/locations/*/zones/*/routers/*}" 265 }; 266 option (google.api.method_signature) = "name"; 267 } 268 269 // Get the diagnostics of a single router resource. 270 rpc DiagnoseRouter(DiagnoseRouterRequest) returns (DiagnoseRouterResponse) { 271 option (google.api.http) = { 272 get: "/v1/{name=projects/*/locations/*/zones/*/routers/*}:diagnose" 273 }; 274 option (google.api.method_signature) = "name"; 275 } 276 277 // Creates a new Router in a given project and location. 278 rpc CreateRouter(CreateRouterRequest) returns (google.longrunning.Operation) { 279 option (google.api.http) = { 280 post: "/v1/{parent=projects/*/locations/*/zones/*}/routers" 281 body: "router" 282 }; 283 option (google.api.method_signature) = "parent,router,router_id"; 284 option (google.longrunning.operation_info) = { 285 response_type: "Router" 286 metadata_type: "OperationMetadata" 287 }; 288 } 289 290 // Updates the parameters of a single Router. 291 rpc UpdateRouter(UpdateRouterRequest) returns (google.longrunning.Operation) { 292 option (google.api.http) = { 293 patch: "/v1/{router.name=projects/*/locations/*/zones/*/routers/*}" 294 body: "router" 295 }; 296 option (google.api.method_signature) = "router,update_mask"; 297 option (google.longrunning.operation_info) = { 298 response_type: "Router" 299 metadata_type: "OperationMetadata" 300 }; 301 } 302 303 // Deletes a single Router. 304 rpc DeleteRouter(DeleteRouterRequest) returns (google.longrunning.Operation) { 305 option (google.api.http) = { 306 delete: "/v1/{name=projects/*/locations/*/zones/*/routers/*}" 307 }; 308 option (google.api.method_signature) = "name"; 309 option (google.longrunning.operation_info) = { 310 response_type: "google.protobuf.Empty" 311 metadata_type: "OperationMetadata" 312 }; 313 } 314} 315 316// Deprecated: not implemented. 317// Message for requesting list of Zones 318message ListZonesRequest { 319 option deprecated = true; 320 321 // Required. Parent value for ListZonesRequest 322 string parent = 1 [ 323 (google.api.field_behavior) = REQUIRED, 324 (google.api.resource_reference) = { 325 child_type: "edgenetwork.googleapis.com/Zone" 326 } 327 ]; 328 329 // Requested page size. Server may return fewer items than requested. 330 // If unspecified, server will pick an appropriate default. 331 int32 page_size = 2; 332 333 // A token identifying a page of results the server should return. 334 string page_token = 3; 335 336 // Filtering results 337 string filter = 4; 338 339 // Hint for how to order the results 340 string order_by = 5; 341} 342 343// Deprecated: not implemented. 344// Message for response to listing Zones 345message ListZonesResponse { 346 option deprecated = true; 347 348 // The list of Zone 349 repeated Zone zones = 1; 350 351 // A token identifying a page of results the server should return. 352 string next_page_token = 2; 353 354 // Locations that could not be reached. 355 repeated string unreachable = 3; 356} 357 358// Deprecated: not implemented. 359// Message for getting a Zone 360message GetZoneRequest { 361 option deprecated = true; 362 363 // Required. Name of the resource 364 string name = 1 [ 365 (google.api.field_behavior) = REQUIRED, 366 (google.api.resource_reference) = { 367 type: "edgenetwork.googleapis.com/Zone" 368 } 369 ]; 370} 371 372// Message for requesting list of Networks 373message ListNetworksRequest { 374 // Required. Parent value for ListNetworksRequest 375 string parent = 1 [ 376 (google.api.field_behavior) = REQUIRED, 377 (google.api.resource_reference) = { 378 child_type: "edgenetwork.googleapis.com/Network" 379 } 380 ]; 381 382 // Requested page size. Server may return fewer items than requested. 383 // If unspecified, server will pick an appropriate default. 384 int32 page_size = 2; 385 386 // A token identifying a page of results the server should return. 387 string page_token = 3; 388 389 // Filtering results 390 string filter = 4; 391 392 // Hint for how to order the results 393 string order_by = 5; 394} 395 396// Message for response to listing Networks 397message ListNetworksResponse { 398 // The list of Network 399 repeated Network networks = 1; 400 401 // A token identifying a page of results the server should return. 402 string next_page_token = 2; 403 404 // Locations that could not be reached. 405 repeated string unreachable = 3; 406} 407 408// Message for getting a Network 409message GetNetworkRequest { 410 // Required. Name of the resource 411 string name = 1 [ 412 (google.api.field_behavior) = REQUIRED, 413 (google.api.resource_reference) = { 414 type: "edgenetwork.googleapis.com/Network" 415 } 416 ]; 417} 418 419// Message for creating a Network 420message CreateNetworkRequest { 421 // Required. Value for parent. 422 string parent = 1 [ 423 (google.api.field_behavior) = REQUIRED, 424 (google.api.resource_reference) = { 425 child_type: "edgenetwork.googleapis.com/Network" 426 } 427 ]; 428 429 // Required. Id of the requesting object 430 // If auto-generating Id server-side, remove this field and 431 // network_id from the method_signature of Create RPC 432 string network_id = 2 [(google.api.field_behavior) = REQUIRED]; 433 434 // Required. The resource being created 435 Network network = 3 [(google.api.field_behavior) = REQUIRED]; 436 437 // Optional. An optional request ID to identify requests. Specify a unique 438 // request ID so that if you must retry your request, the server will know to 439 // ignore the request if it has already been completed. The server will 440 // guarantee that for at least 60 minutes since the first request. 441 // 442 // For example, consider a situation where you make an initial request and 443 // the request times out. If you make the request again with the same request 444 // ID, the server can check if original operation with the same request ID 445 // was received, and if so, will ignore the second request. This prevents 446 // clients from accidentally creating duplicate commitments. 447 // 448 // The request ID must be a valid UUID with the exception that zero UUID is 449 // not supported (00000000-0000-0000-0000-000000000000). 450 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 451} 452 453// Message for deleting a Network 454message DeleteNetworkRequest { 455 // Required. Name of the resource 456 string name = 1 [ 457 (google.api.field_behavior) = REQUIRED, 458 (google.api.resource_reference) = { 459 type: "edgenetwork.googleapis.com/Network" 460 } 461 ]; 462 463 // Optional. An optional request ID to identify requests. Specify a unique 464 // request ID so that if you must retry your request, the server will know to 465 // ignore the request if it has already been completed. The server will 466 // guarantee that for at least 60 minutes after the first request. 467 // 468 // For example, consider a situation where you make an initial request and 469 // the request times out. If you make the request again with the same request 470 // ID, the server can check if original operation with the same request ID 471 // was received, and if so, will ignore the second request. This prevents 472 // clients from accidentally creating duplicate commitments. 473 // 474 // The request ID must be a valid UUID with the exception that zero UUID is 475 // not supported (00000000-0000-0000-0000-000000000000). 476 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 477} 478 479// Message for requesting list of Subnets 480message ListSubnetsRequest { 481 // Required. Parent value for ListSubnetsRequest 482 string parent = 1 [ 483 (google.api.field_behavior) = REQUIRED, 484 (google.api.resource_reference) = { 485 child_type: "edgenetwork.googleapis.com/Subnet" 486 } 487 ]; 488 489 // Requested page size. Server may return fewer items than requested. 490 // If unspecified, server will pick an appropriate default. 491 int32 page_size = 2; 492 493 // A token identifying a page of results the server should return. 494 string page_token = 3; 495 496 // Filtering results 497 string filter = 4; 498 499 // Hint for how to order the results 500 string order_by = 5; 501} 502 503// Message for response to listing Subnets 504message ListSubnetsResponse { 505 // The list of Subnet 506 repeated Subnet subnets = 1; 507 508 // A token identifying a page of results the server should return. 509 string next_page_token = 2; 510 511 // Locations that could not be reached. 512 repeated string unreachable = 3; 513} 514 515// Message for getting a Subnet 516message GetSubnetRequest { 517 // Required. Name of the resource 518 string name = 1 [ 519 (google.api.field_behavior) = REQUIRED, 520 (google.api.resource_reference) = { 521 type: "edgenetwork.googleapis.com/Subnet" 522 } 523 ]; 524} 525 526// Message for creating a Subnet 527message CreateSubnetRequest { 528 // Required. Value for parent. 529 string parent = 1 [ 530 (google.api.field_behavior) = REQUIRED, 531 (google.api.resource_reference) = { 532 child_type: "edgenetwork.googleapis.com/Subnet" 533 } 534 ]; 535 536 // Required. Id of the requesting object 537 // If auto-generating Id server-side, remove this field and 538 // subnet_id from the method_signature of Create RPC 539 string subnet_id = 2 [(google.api.field_behavior) = REQUIRED]; 540 541 // Required. The resource being created 542 Subnet subnet = 3 [(google.api.field_behavior) = REQUIRED]; 543 544 // Optional. An optional request ID to identify requests. Specify a unique 545 // request ID so that if you must retry your request, the server will know to 546 // ignore the request if it has already been completed. The server will 547 // guarantee that for at least 60 minutes since the first request. 548 // 549 // For example, consider a situation where you make an initial request and 550 // the request times out. If you make the request again with the same request 551 // ID, the server can check if original operation with the same request ID 552 // was received, and if so, will ignore the second request. This prevents 553 // clients from accidentally creating duplicate commitments. 554 // 555 // The request ID must be a valid UUID with the exception that zero UUID is 556 // not supported (00000000-0000-0000-0000-000000000000). 557 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 558} 559 560// Message for updating a Subnet 561message UpdateSubnetRequest { 562 // Required. Field mask is used to specify the fields to be overwritten in the 563 // Subnet resource by the update. 564 // The fields specified in the update_mask are relative to the resource, not 565 // the full request. A field will be overwritten if it is in the mask. If the 566 // user does not provide a mask then all fields will be overwritten. 567 google.protobuf.FieldMask update_mask = 1 568 [(google.api.field_behavior) = REQUIRED]; 569 570 // Required. The resource being updated 571 Subnet subnet = 2 [(google.api.field_behavior) = REQUIRED]; 572 573 // Optional. An optional request ID to identify requests. Specify a unique 574 // request ID so that if you must retry your request, the server will know to 575 // ignore the request if it has already been completed. The server will 576 // guarantee that for at least 60 minutes since the first request. 577 // 578 // For example, consider a situation where you make an initial request and 579 // the request times out. If you make the request again with the same request 580 // ID, the server can check if original operation with the same request ID 581 // was received, and if so, will ignore the second request. This prevents 582 // clients from accidentally creating duplicate commitments. 583 // 584 // The request ID must be a valid UUID with the exception that zero UUID is 585 // not supported (00000000-0000-0000-0000-000000000000). 586 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 587} 588 589// Message for deleting a Subnet 590message DeleteSubnetRequest { 591 // Required. Name of the resource 592 string name = 1 [ 593 (google.api.field_behavior) = REQUIRED, 594 (google.api.resource_reference) = { 595 type: "edgenetwork.googleapis.com/Subnet" 596 } 597 ]; 598 599 // Optional. An optional request ID to identify requests. Specify a unique 600 // request ID so that if you must retry your request, the server will know to 601 // ignore the request if it has already been completed. The server will 602 // guarantee that for at least 60 minutes after the first request. 603 // 604 // For example, consider a situation where you make an initial request and 605 // the request times out. If you make the request again with the same request 606 // ID, the server can check if original operation with the same request ID 607 // was received, and if so, will ignore the second request. This prevents 608 // clients from accidentally creating duplicate commitments. 609 // 610 // The request ID must be a valid UUID with the exception that zero UUID is 611 // not supported (00000000-0000-0000-0000-000000000000). 612 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 613} 614 615// Message for requesting list of Interconnects 616message ListInterconnectsRequest { 617 // Required. Parent value for ListInterconnectsRequest 618 string parent = 1 [ 619 (google.api.field_behavior) = REQUIRED, 620 (google.api.resource_reference) = { 621 child_type: "edgenetwork.googleapis.com/Interconnect" 622 } 623 ]; 624 625 // Requested page size. Server may return fewer items than requested. 626 // If unspecified, server will pick an appropriate default. 627 int32 page_size = 2; 628 629 // A token identifying a page of results the server should return. 630 string page_token = 3; 631 632 // Filtering results 633 string filter = 4; 634 635 // Hint for how to order the results 636 string order_by = 5; 637} 638 639// Message for response to listing Interconnects 640message ListInterconnectsResponse { 641 // The list of Interconnect 642 repeated Interconnect interconnects = 1; 643 644 // A token identifying a page of results the server should return. 645 string next_page_token = 2; 646 647 // Locations that could not be reached. 648 repeated string unreachable = 3; 649} 650 651// Message for getting a Interconnect 652message GetInterconnectRequest { 653 // Required. Name of the resource 654 string name = 1 [ 655 (google.api.field_behavior) = REQUIRED, 656 (google.api.resource_reference) = { 657 type: "edgenetwork.googleapis.com/Interconnect" 658 } 659 ]; 660} 661 662// Message for requesting list of InterconnectAttachments 663message ListInterconnectAttachmentsRequest { 664 // Required. Parent value for ListInterconnectAttachmentsRequest 665 string parent = 1 [ 666 (google.api.field_behavior) = REQUIRED, 667 (google.api.resource_reference) = { 668 child_type: "edgenetwork.googleapis.com/InterconnectAttachment" 669 } 670 ]; 671 672 // Requested page size. Server may return fewer items than requested. 673 // If unspecified, server will pick an appropriate default. 674 int32 page_size = 2; 675 676 // A token identifying a page of results the server should return. 677 string page_token = 3; 678 679 // Filtering results 680 string filter = 4; 681 682 // Hint for how to order the results 683 string order_by = 5; 684} 685 686// Message for response to listing InterconnectAttachments 687message ListInterconnectAttachmentsResponse { 688 // The list of InterconnectAttachment 689 repeated InterconnectAttachment interconnect_attachments = 1; 690 691 // A token identifying a page of results the server should return. 692 string next_page_token = 2; 693 694 // Locations that could not be reached. 695 repeated string unreachable = 3; 696} 697 698// Message for getting a InterconnectAttachment 699message GetInterconnectAttachmentRequest { 700 // Required. Name of the resource 701 string name = 1 [ 702 (google.api.field_behavior) = REQUIRED, 703 (google.api.resource_reference) = { 704 type: "edgenetwork.googleapis.com/InterconnectAttachment" 705 } 706 ]; 707} 708 709// Message for creating a InterconnectAttachment 710message CreateInterconnectAttachmentRequest { 711 // Required. Value for parent. 712 string parent = 1 [ 713 (google.api.field_behavior) = REQUIRED, 714 (google.api.resource_reference) = { 715 child_type: "edgenetwork.googleapis.com/InterconnectAttachment" 716 } 717 ]; 718 719 // Required. Id of the requesting object 720 // If auto-generating Id server-side, remove this field and 721 // interconnect_attachment_id from the method_signature of Create RPC 722 string interconnect_attachment_id = 2 723 [(google.api.field_behavior) = REQUIRED]; 724 725 // Required. The resource being created 726 InterconnectAttachment interconnect_attachment = 3 727 [(google.api.field_behavior) = REQUIRED]; 728 729 // Optional. An optional request ID to identify requests. Specify a unique 730 // request ID so that if you must retry your request, the server will know to 731 // ignore the request if it has already been completed. The server will 732 // guarantee that for at least 60 minutes since the first request. 733 // 734 // For example, consider a situation where you make an initial request and 735 // the request times out. If you make the request again with the same request 736 // ID, the server can check if original operation with the same request ID 737 // was received, and if so, will ignore the second request. This prevents 738 // clients from accidentally creating duplicate commitments. 739 // 740 // The request ID must be a valid UUID with the exception that zero UUID is 741 // not supported (00000000-0000-0000-0000-000000000000). 742 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 743} 744 745// Message for deleting a InterconnectAttachment 746message DeleteInterconnectAttachmentRequest { 747 // Required. Name of the resource 748 string name = 1 [ 749 (google.api.field_behavior) = REQUIRED, 750 (google.api.resource_reference) = { 751 type: "edgenetwork.googleapis.com/InterconnectAttachment" 752 } 753 ]; 754 755 // Optional. An optional request ID to identify requests. Specify a unique 756 // request ID so that if you must retry your request, the server will know to 757 // ignore the request if it has already been completed. The server will 758 // guarantee that for at least 60 minutes after the first request. 759 // 760 // For example, consider a situation where you make an initial request and 761 // the request times out. If you make the request again with the same request 762 // ID, the server can check if original operation with the same request ID 763 // was received, and if so, will ignore the second request. This prevents 764 // clients from accidentally creating duplicate commitments. 765 // 766 // The request ID must be a valid UUID with the exception that zero UUID is 767 // not supported (00000000-0000-0000-0000-000000000000). 768 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 769} 770 771// Message for requesting list of Routers 772message ListRoutersRequest { 773 // Required. Parent value for ListRoutersRequest 774 string parent = 1 [ 775 (google.api.field_behavior) = REQUIRED, 776 (google.api.resource_reference) = { 777 child_type: "edgenetwork.googleapis.com/Router" 778 } 779 ]; 780 781 // Requested page size. Server may return fewer items than requested. 782 // If unspecified, server will pick an appropriate default. 783 int32 page_size = 2; 784 785 // A token identifying a page of results the server should return. 786 string page_token = 3; 787 788 // Filtering results 789 string filter = 4; 790 791 // Hint for how to order the results 792 string order_by = 5; 793} 794 795// Message for response to listing Routers 796message ListRoutersResponse { 797 // The list of Router 798 repeated Router routers = 1; 799 800 // A token identifying a page of results the server should return. 801 string next_page_token = 2; 802 803 // Locations that could not be reached. 804 repeated string unreachable = 3; 805} 806 807// Message for getting a Router 808message GetRouterRequest { 809 // Required. Name of the resource 810 string name = 1 [ 811 (google.api.field_behavior) = REQUIRED, 812 (google.api.resource_reference) = { 813 type: "edgenetwork.googleapis.com/Router" 814 } 815 ]; 816} 817 818// Message for creating a Router 819message CreateRouterRequest { 820 // Required. Value for parent. 821 string parent = 1 [ 822 (google.api.field_behavior) = REQUIRED, 823 (google.api.resource_reference) = { 824 child_type: "edgenetwork.googleapis.com/Router" 825 } 826 ]; 827 828 // Required. Id of the requesting object 829 // If auto-generating Id server-side, remove this field and 830 // router_id from the method_signature of Create RPC 831 string router_id = 2 [(google.api.field_behavior) = REQUIRED]; 832 833 // Required. The resource being created 834 Router router = 3 [(google.api.field_behavior) = REQUIRED]; 835 836 // Optional. An optional request ID to identify requests. Specify a unique 837 // request ID so that if you must retry your request, the server will know to 838 // ignore the request if it has already been completed. The server will 839 // guarantee that for at least 60 minutes since the first request. 840 // 841 // For example, consider a situation where you make an initial request and 842 // the request times out. If you make the request again with the same request 843 // ID, the server can check if original operation with the same request ID 844 // was received, and if so, will ignore the second request. This prevents 845 // clients from accidentally creating duplicate commitments. 846 // 847 // The request ID must be a valid UUID with the exception that zero UUID is 848 // not supported (00000000-0000-0000-0000-000000000000). 849 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 850} 851 852// Message for updating a Router 853message UpdateRouterRequest { 854 // Required. Field mask is used to specify the fields to be overwritten in the 855 // Router resource by the update. 856 // The fields specified in the update_mask are relative to the resource, not 857 // the full request. A field will be overwritten if it is in the mask. If the 858 // user does not provide a mask then all fields will be overwritten. 859 google.protobuf.FieldMask update_mask = 1 860 [(google.api.field_behavior) = REQUIRED]; 861 862 // Required. The resource being updated 863 Router router = 2 [(google.api.field_behavior) = REQUIRED]; 864 865 // Optional. An optional request ID to identify requests. Specify a unique 866 // request ID so that if you must retry your request, the server will know to 867 // ignore the request if it has already been completed. The server will 868 // guarantee that for at least 60 minutes since the first request. 869 // 870 // For example, consider a situation where you make an initial request and 871 // the request times out. If you make the request again with the same request 872 // ID, the server can check if original operation with the same request ID 873 // was received, and if so, will ignore the second request. This prevents 874 // clients from accidentally creating duplicate commitments. 875 // 876 // The request ID must be a valid UUID with the exception that zero UUID is 877 // not supported (00000000-0000-0000-0000-000000000000). 878 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 879} 880 881// Message for deleting a Router 882message DeleteRouterRequest { 883 // Required. Name of the resource 884 string name = 1 [ 885 (google.api.field_behavior) = REQUIRED, 886 (google.api.resource_reference) = { 887 type: "edgenetwork.googleapis.com/Router" 888 } 889 ]; 890 891 // Optional. An optional request ID to identify requests. Specify a unique 892 // request ID so that if you must retry your request, the server will know to 893 // ignore the request if it has already been completed. The server will 894 // guarantee that for at least 60 minutes after the first request. 895 // 896 // For example, consider a situation where you make an initial request and 897 // the request times out. If you make the request again with the same request 898 // ID, the server can check if original operation with the same request ID 899 // was received, and if so, will ignore the second request. This prevents 900 // clients from accidentally creating duplicate commitments. 901 // 902 // The request ID must be a valid UUID with the exception that zero UUID is 903 // not supported (00000000-0000-0000-0000-000000000000). 904 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 905} 906 907// Represents the metadata of the long-running operation. 908message OperationMetadata { 909 // Output only. The time the operation was created. 910 google.protobuf.Timestamp create_time = 1 911 [(google.api.field_behavior) = OUTPUT_ONLY]; 912 913 // Output only. The time the operation finished running. 914 google.protobuf.Timestamp end_time = 2 915 [(google.api.field_behavior) = OUTPUT_ONLY]; 916 917 // Output only. Server-defined resource path for the target of the operation. 918 string target = 3 [(google.api.field_behavior) = OUTPUT_ONLY]; 919 920 // Output only. Name of the verb executed by the operation. 921 string verb = 4 [(google.api.field_behavior) = OUTPUT_ONLY]; 922 923 // Output only. Human-readable status of the operation, if any. 924 string status_message = 5 [(google.api.field_behavior) = OUTPUT_ONLY]; 925 926 // Output only. Identifies whether the user has requested cancellation 927 // of the operation. Operations that have been cancelled successfully 928 // have [Operation.error][] value with a 929 // [google.rpc.Status.code][google.rpc.Status.code] of 1, corresponding to 930 // `Code.CANCELLED`. 931 bool requested_cancellation = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 932 933 // Output only. API version used to start the operation. 934 string api_version = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 935} 936 937// Message for requesting the diagnostics of a network within a specific zone. 938message DiagnoseNetworkRequest { 939 // Required. The name of the network resource. 940 string name = 1 [ 941 (google.api.field_behavior) = REQUIRED, 942 (google.api.resource_reference) = { 943 type: "edgenetwork.googleapis.com/Network" 944 } 945 ]; 946} 947 948// DiagnoseNetworkResponse contains the current status for a specific network. 949message DiagnoseNetworkResponse { 950 // NetworkStatus has a list of status for the subnets under the current 951 // network. 952 message NetworkStatus { 953 // Denotes the status of MACsec sessions for the links of a zone. 954 enum MacsecStatus { 955 // MACsec status not specified, likely due to missing metrics. 956 MACSEC_STATUS_UNSPECIFIED = 0; 957 958 // All relevant links have at least one MACsec session up. 959 SECURE = 1; 960 961 // At least one relevant link does not have any MACsec sessions up. 962 UNSECURE = 2; 963 } 964 965 // A list of status for the subnets under the current network. 966 repeated SubnetStatus subnet_status = 1; 967 968 // The MACsec status of internal links. 969 MacsecStatus macsec_status_internal_links = 2; 970 } 971 972 // The time when the network status was last updated. 973 google.protobuf.Timestamp update_time = 1; 974 975 // The network status of a specific network. 976 NetworkStatus result = 2; 977} 978 979// Message for requesting the diagnostics of an interconnect within a specific 980// zone. 981message DiagnoseInterconnectRequest { 982 // Required. The name of the interconnect resource. 983 string name = 1 [ 984 (google.api.field_behavior) = REQUIRED, 985 (google.api.resource_reference) = { 986 type: "edgenetwork.googleapis.com/Interconnect" 987 } 988 ]; 989} 990 991// DiagnoseInterconnectResponse contains the current diagnostics for a 992// specific interconnect. 993message DiagnoseInterconnectResponse { 994 // The time when the interconnect diagnostics was last updated. 995 google.protobuf.Timestamp update_time = 1; 996 997 // The network status of a specific interconnect. 998 InterconnectDiagnostics result = 2; 999} 1000 1001// Message for requesting diagnositcs of a router within a specific zone. 1002message DiagnoseRouterRequest { 1003 // Required. The name of the router resource. 1004 string name = 1 [ 1005 (google.api.field_behavior) = REQUIRED, 1006 (google.api.resource_reference) = { 1007 type: "edgenetwork.googleapis.com/Router" 1008 } 1009 ]; 1010} 1011 1012// DiagnoseRouterResponse contains the current status for a specific router. 1013message DiagnoseRouterResponse { 1014 // The time when the router status was last updated. 1015 google.protobuf.Timestamp update_time = 1; 1016 1017 // The network status of a specific router. 1018 RouterStatus result = 2; 1019} 1020 1021// Message for initializing a specified zone 1022message InitializeZoneRequest { 1023 // Required. The name of the zone resource. 1024 string name = 1 [ 1025 (google.api.field_behavior) = REQUIRED, 1026 (google.api.resource_reference) = { 1027 type: "edgenetwork.googleapis.com/Zone" 1028 } 1029 ]; 1030} 1031 1032// The response of initializing a zone 1033message InitializeZoneResponse {} 1034