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.networkconnectivity.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/networkconnectivity/v1/common.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.NetworkConnectivity.V1"; 30option go_package = "cloud.google.com/go/networkconnectivity/apiv1/networkconnectivitypb;networkconnectivitypb"; 31option java_multiple_files = true; 32option java_outer_classname = "HubProto"; 33option java_package = "com.google.cloud.networkconnectivity.v1"; 34option php_namespace = "Google\\Cloud\\NetworkConnectivity\\V1"; 35option ruby_package = "Google::Cloud::NetworkConnectivity::V1"; 36option (google.api.resource_definition) = { 37 type: "compute.googleapis.com/VpnTunnel" 38 pattern: "projects/{project}/regions/{region}/vpnTunnels/{resource_id}" 39}; 40option (google.api.resource_definition) = { 41 type: "compute.googleapis.com/Instance" 42 pattern: "projects/{project}/zones/{zone}/instances/{instance}" 43}; 44 45// Network Connectivity Center is a hub-and-spoke abstraction for network 46// connectivity management in Google Cloud. It reduces operational complexity 47// through a simple, centralized connectivity management model. 48service HubService { 49 option (google.api.default_host) = "networkconnectivity.googleapis.com"; 50 option (google.api.oauth_scopes) = 51 "https://www.googleapis.com/auth/cloud-platform"; 52 53 // Lists the Network Connectivity Center hubs associated with a given project. 54 rpc ListHubs(ListHubsRequest) returns (ListHubsResponse) { 55 option (google.api.http) = { 56 get: "/v1/{parent=projects/*/locations/global}/hubs" 57 }; 58 option (google.api.method_signature) = "parent"; 59 } 60 61 // Gets details about a Network Connectivity Center hub. 62 rpc GetHub(GetHubRequest) returns (Hub) { 63 option (google.api.http) = { 64 get: "/v1/{name=projects/*/locations/global/hubs/*}" 65 }; 66 option (google.api.method_signature) = "name"; 67 } 68 69 // Creates a new Network Connectivity Center hub in the specified project. 70 rpc CreateHub(CreateHubRequest) returns (google.longrunning.Operation) { 71 option (google.api.http) = { 72 post: "/v1/{parent=projects/*/locations/global}/hubs" 73 body: "hub" 74 }; 75 option (google.api.method_signature) = "parent,hub,hub_id"; 76 option (google.longrunning.operation_info) = { 77 response_type: "Hub" 78 metadata_type: "OperationMetadata" 79 }; 80 } 81 82 // Updates the description and/or labels of a Network Connectivity Center 83 // hub. 84 rpc UpdateHub(UpdateHubRequest) returns (google.longrunning.Operation) { 85 option (google.api.http) = { 86 patch: "/v1/{hub.name=projects/*/locations/global/hubs/*}" 87 body: "hub" 88 }; 89 option (google.api.method_signature) = "hub,update_mask"; 90 option (google.longrunning.operation_info) = { 91 response_type: "Hub" 92 metadata_type: "OperationMetadata" 93 }; 94 } 95 96 // Deletes a Network Connectivity Center hub. 97 rpc DeleteHub(DeleteHubRequest) returns (google.longrunning.Operation) { 98 option (google.api.http) = { 99 delete: "/v1/{name=projects/*/locations/global/hubs/*}" 100 }; 101 option (google.api.method_signature) = "name"; 102 option (google.longrunning.operation_info) = { 103 response_type: "google.protobuf.Empty" 104 metadata_type: "OperationMetadata" 105 }; 106 } 107 108 // Lists the Network Connectivity Center spokes associated with a 109 // specified hub and location. The list includes both spokes that are attached 110 // to the hub and spokes that have been proposed but not yet accepted. 111 rpc ListHubSpokes(ListHubSpokesRequest) returns (ListHubSpokesResponse) { 112 option (google.api.http) = { 113 get: "/v1/{name=projects/*/locations/global/hubs/*}:listSpokes" 114 }; 115 option (google.api.method_signature) = "name"; 116 } 117 118 // Lists the Network Connectivity Center spokes in a specified project and 119 // location. 120 rpc ListSpokes(ListSpokesRequest) returns (ListSpokesResponse) { 121 option (google.api.http) = { 122 get: "/v1/{parent=projects/*/locations/*}/spokes" 123 }; 124 option (google.api.method_signature) = "parent"; 125 } 126 127 // Gets details about a Network Connectivity Center spoke. 128 rpc GetSpoke(GetSpokeRequest) returns (Spoke) { 129 option (google.api.http) = { 130 get: "/v1/{name=projects/*/locations/*/spokes/*}" 131 }; 132 option (google.api.method_signature) = "name"; 133 } 134 135 // Creates a Network Connectivity Center spoke. 136 rpc CreateSpoke(CreateSpokeRequest) returns (google.longrunning.Operation) { 137 option (google.api.http) = { 138 post: "/v1/{parent=projects/*/locations/*}/spokes" 139 body: "spoke" 140 }; 141 option (google.api.method_signature) = "parent,spoke,spoke_id"; 142 option (google.longrunning.operation_info) = { 143 response_type: "Spoke" 144 metadata_type: "OperationMetadata" 145 }; 146 } 147 148 // Updates the parameters of a Network Connectivity Center spoke. 149 rpc UpdateSpoke(UpdateSpokeRequest) returns (google.longrunning.Operation) { 150 option (google.api.http) = { 151 patch: "/v1/{spoke.name=projects/*/locations/*/spokes/*}" 152 body: "spoke" 153 }; 154 option (google.api.method_signature) = "spoke,update_mask"; 155 option (google.longrunning.operation_info) = { 156 response_type: "Spoke" 157 metadata_type: "OperationMetadata" 158 }; 159 } 160 161 // Rejects a Network Connectivity Center spoke from being attached to a hub. 162 // If the spoke was previously in the `ACTIVE` state, it 163 // transitions to the `INACTIVE` state and is no longer able to 164 // connect to other spokes that are attached to the hub. 165 rpc RejectHubSpoke(RejectHubSpokeRequest) 166 returns (google.longrunning.Operation) { 167 option (google.api.http) = { 168 post: "/v1/{name=projects/*/locations/global/hubs/*}:rejectSpoke" 169 body: "*" 170 }; 171 option (google.api.method_signature) = "name,spoke_uri"; 172 option (google.longrunning.operation_info) = { 173 response_type: "RejectHubSpokeResponse" 174 metadata_type: "OperationMetadata" 175 }; 176 } 177 178 // Accepts a proposal to attach a Network Connectivity Center spoke 179 // to a hub. 180 rpc AcceptHubSpoke(AcceptHubSpokeRequest) 181 returns (google.longrunning.Operation) { 182 option (google.api.http) = { 183 post: "/v1/{name=projects/*/locations/global/hubs/*}:acceptSpoke" 184 body: "*" 185 }; 186 option (google.api.method_signature) = "name,spoke_uri"; 187 option (google.longrunning.operation_info) = { 188 response_type: "AcceptHubSpokeResponse" 189 metadata_type: "OperationMetadata" 190 }; 191 } 192 193 // Deletes a Network Connectivity Center spoke. 194 rpc DeleteSpoke(DeleteSpokeRequest) returns (google.longrunning.Operation) { 195 option (google.api.http) = { 196 delete: "/v1/{name=projects/*/locations/*/spokes/*}" 197 }; 198 option (google.api.method_signature) = "name"; 199 option (google.longrunning.operation_info) = { 200 response_type: "google.protobuf.Empty" 201 metadata_type: "OperationMetadata" 202 }; 203 } 204 205 // Gets details about a Network Connectivity Center route table. 206 rpc GetRouteTable(GetRouteTableRequest) returns (RouteTable) { 207 option (google.api.http) = { 208 get: "/v1/{name=projects/*/locations/global/hubs/*/routeTables/*}" 209 }; 210 option (google.api.method_signature) = "name"; 211 } 212 213 // Gets details about the specified route. 214 rpc GetRoute(GetRouteRequest) returns (Route) { 215 option (google.api.http) = { 216 get: "/v1/{name=projects/*/locations/global/hubs/*/routeTables/*/routes/*}" 217 }; 218 option (google.api.method_signature) = "name"; 219 } 220 221 // Lists routes in a given project. 222 rpc ListRoutes(ListRoutesRequest) returns (ListRoutesResponse) { 223 option (google.api.http) = { 224 get: "/v1/{parent=projects/*/locations/global/hubs/*/routeTables/*}/routes" 225 }; 226 option (google.api.method_signature) = "parent"; 227 } 228 229 // Lists route tables in a given project. 230 rpc ListRouteTables(ListRouteTablesRequest) 231 returns (ListRouteTablesResponse) { 232 option (google.api.http) = { 233 get: "/v1/{parent=projects/*/locations/global/hubs/*}/routeTables" 234 }; 235 option (google.api.method_signature) = "parent"; 236 } 237 238 // Gets details about a Network Connectivity Center group. 239 rpc GetGroup(GetGroupRequest) returns (Group) { 240 option (google.api.http) = { 241 get: "/v1/{name=projects/*/locations/global/hubs/*/groups/*}" 242 }; 243 option (google.api.method_signature) = "name"; 244 } 245 246 // Lists groups in a given hub. 247 rpc ListGroups(ListGroupsRequest) returns (ListGroupsResponse) { 248 option (google.api.http) = { 249 get: "/v1/{parent=projects/*/locations/global/hubs/*}/groups" 250 }; 251 option (google.api.method_signature) = "parent"; 252 } 253} 254 255// Supported features for a location 256enum LocationFeature { 257 // No publicly supported feature in this location 258 LOCATION_FEATURE_UNSPECIFIED = 0; 259 260 // Site-to-cloud spokes are supported in this location 261 SITE_TO_CLOUD_SPOKES = 1; 262 263 // Site-to-site spokes are supported in this location 264 SITE_TO_SITE_SPOKES = 2; 265} 266 267// The route's type 268enum RouteType { 269 // No route type information specified 270 ROUTE_TYPE_UNSPECIFIED = 0; 271 272 // The route leads to a destination within the primary address range of the 273 // VPC network's subnet. 274 VPC_PRIMARY_SUBNET = 1; 275 276 // The route leads to a destination within the secondary address range of the 277 // VPC network's subnet. 278 VPC_SECONDARY_SUBNET = 2; 279} 280 281// The State enum represents the lifecycle stage of a Network Connectivity 282// Center resource. 283enum State { 284 // No state information available 285 STATE_UNSPECIFIED = 0; 286 287 // The resource's create operation is in progress. 288 CREATING = 1; 289 290 // The resource is active 291 ACTIVE = 2; 292 293 // The resource's delete operation is in progress. 294 DELETING = 3; 295 296 // The resource's accept operation is in progress. 297 ACCEPTING = 8; 298 299 // The resource's reject operation is in progress. 300 REJECTING = 9; 301 302 // The resource's update operation is in progress. 303 UPDATING = 6; 304 305 // The resource is inactive. 306 INACTIVE = 7; 307 308 // The hub associated with this spoke resource has been deleted. 309 // This state applies to spoke resources only. 310 OBSOLETE = 10; 311} 312 313// The SpokeType enum represents the type of spoke. The type 314// reflects the kind of resource that a spoke is associated with. 315enum SpokeType { 316 // Unspecified spoke type. 317 SPOKE_TYPE_UNSPECIFIED = 0; 318 319 // Spokes associated with VPN tunnels. 320 VPN_TUNNEL = 1; 321 322 // Spokes associated with VLAN attachments. 323 INTERCONNECT_ATTACHMENT = 2; 324 325 // Spokes associated with router appliance instances. 326 ROUTER_APPLIANCE = 3; 327 328 // Spokes associated with VPC networks. 329 VPC_NETWORK = 4; 330} 331 332// A Network Connectivity Center hub is a global management resource to which 333// you attach spokes. A single hub can contain spokes from multiple regions. 334// However, if any of a hub's spokes use the site-to-site data transfer feature, 335// the resources associated with those spokes must all be in the same VPC 336// network. Spokes that do not use site-to-site data transfer can be associated 337// with any VPC network in your project. 338message Hub { 339 option (google.api.resource) = { 340 type: "networkconnectivity.googleapis.com/Hub" 341 pattern: "projects/{project}/locations/global/hubs/{hub}" 342 }; 343 344 // Immutable. The name of the hub. Hub names must be unique. They use the 345 // following form: 346 // `projects/{project_number}/locations/global/hubs/{hub_id}` 347 string name = 1 [(google.api.field_behavior) = IMMUTABLE]; 348 349 // Output only. The time the hub was created. 350 google.protobuf.Timestamp create_time = 2 351 [(google.api.field_behavior) = OUTPUT_ONLY]; 352 353 // Output only. The time the hub was last updated. 354 google.protobuf.Timestamp update_time = 3 355 [(google.api.field_behavior) = OUTPUT_ONLY]; 356 357 // Optional labels in key-value pair format. For more information about 358 // labels, see [Requirements for 359 // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). 360 map<string, string> labels = 4; 361 362 // An optional description of the hub. 363 string description = 5; 364 365 // Output only. The Google-generated UUID for the hub. This value is unique 366 // across all hub resources. If a hub is deleted and another with the same 367 // name is created, the new hub is assigned a different unique_id. 368 string unique_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 369 370 // Output only. The current lifecycle state of this hub. 371 State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 372 373 // The VPC networks associated with this hub's spokes. 374 // 375 // This field is read-only. Network Connectivity Center automatically 376 // populates it based on the set of spokes attached to the hub. 377 repeated RoutingVPC routing_vpcs = 10; 378 379 // Output only. The route tables that belong to this hub. They use the 380 // following form: 381 // `projects/{project_number}/locations/global/hubs/{hub_id}/routeTables/{route_table_id}` 382 // 383 // This field is read-only. Network Connectivity Center automatically 384 // populates it based on the route tables nested under the hub. 385 repeated string route_tables = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 386 387 // Output only. A summary of the spokes associated with a hub. The 388 // summary includes a count of spokes according to type 389 // and according to state. If any spokes are inactive, 390 // the summary also lists the reasons they are inactive, 391 // including a count for each reason. 392 SpokeSummary spoke_summary = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 393} 394 395// RoutingVPC contains information about the VPC networks associated 396// with the spokes of a Network Connectivity Center hub. 397message RoutingVPC { 398 // The URI of the VPC network. 399 string uri = 1 [ 400 (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } 401 ]; 402 403 // Output only. If true, indicates that this VPC network is currently 404 // associated with spokes that use the data transfer feature (spokes where the 405 // site_to_site_data_transfer field is set to true). If you create new spokes 406 // that use data transfer, they must be associated with this VPC network. At 407 // most, one VPC network will have this field set to true. 408 bool required_for_new_site_to_site_data_transfer_spokes = 2 409 [(google.api.field_behavior) = OUTPUT_ONLY]; 410} 411 412// A Network Connectivity Center spoke represents one or more network 413// connectivity resources. 414// 415// When you create a spoke, you associate it with a hub. You must also 416// identify a value for exactly one of the following fields: 417// 418// * linked_vpn_tunnels 419// * linked_interconnect_attachments 420// * linked_router_appliance_instances 421// * linked_vpc_network 422message Spoke { 423 option (google.api.resource) = { 424 type: "networkconnectivity.googleapis.com/Spoke" 425 pattern: "projects/{project}/locations/{location}/spokes/{spoke}" 426 }; 427 428 // The reason a spoke is inactive. 429 message StateReason { 430 // The Code enum represents the various reasons a state can be `INACTIVE`. 431 enum Code { 432 // No information available. 433 CODE_UNSPECIFIED = 0; 434 435 // The proposed spoke is pending review. 436 PENDING_REVIEW = 1; 437 438 // The proposed spoke has been rejected by the hub administrator. 439 REJECTED = 2; 440 441 // The spoke has been deactivated internally. 442 PAUSED = 3; 443 444 // Network Connectivity Center encountered errors while accepting 445 // the spoke. 446 FAILED = 4; 447 } 448 449 // The code associated with this reason. 450 Code code = 1; 451 452 // Human-readable details about this reason. 453 string message = 2; 454 455 // Additional information provided by the user in the RejectSpoke call. 456 string user_details = 3; 457 } 458 459 // Immutable. The name of the spoke. Spoke names must be unique. They use the 460 // following form: 461 // `projects/{project_number}/locations/{region}/spokes/{spoke_id}` 462 string name = 1 [(google.api.field_behavior) = IMMUTABLE]; 463 464 // Output only. The time the spoke was created. 465 google.protobuf.Timestamp create_time = 2 466 [(google.api.field_behavior) = OUTPUT_ONLY]; 467 468 // Output only. The time the spoke was last updated. 469 google.protobuf.Timestamp update_time = 3 470 [(google.api.field_behavior) = OUTPUT_ONLY]; 471 472 // Optional labels in key-value pair format. For more information about 473 // labels, see [Requirements for 474 // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). 475 map<string, string> labels = 4; 476 477 // An optional description of the spoke. 478 string description = 5; 479 480 // Immutable. The name of the hub that this spoke is attached to. 481 string hub = 6 [ 482 (google.api.field_behavior) = IMMUTABLE, 483 (google.api.resource_reference) = { 484 type: "networkconnectivity.googleapis.com/Hub" 485 } 486 ]; 487 488 // Optional. The name of the group that this spoke is associated with. 489 string group = 23 [ 490 (google.api.field_behavior) = OPTIONAL, 491 (google.api.resource_reference) = { 492 type: "networkconnectivity.googleapis.com/Group" 493 } 494 ]; 495 496 // VPN tunnels that are associated with the spoke. 497 LinkedVpnTunnels linked_vpn_tunnels = 17; 498 499 // VLAN attachments that are associated with the spoke. 500 LinkedInterconnectAttachments linked_interconnect_attachments = 18; 501 502 // Router appliance instances that are associated with the spoke. 503 LinkedRouterApplianceInstances linked_router_appliance_instances = 19; 504 505 // Optional. VPC network that is associated with the spoke. 506 LinkedVpcNetwork linked_vpc_network = 20 507 [(google.api.field_behavior) = OPTIONAL]; 508 509 // Output only. The Google-generated UUID for the spoke. This value is unique 510 // across all spoke resources. If a spoke is deleted and another with the same 511 // name is created, the new spoke is assigned a different `unique_id`. 512 string unique_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY]; 513 514 // Output only. The current lifecycle state of this spoke. 515 State state = 15 [(google.api.field_behavior) = OUTPUT_ONLY]; 516 517 // Output only. The reasons for current state of the spoke. Only present when 518 // the spoke is in the `INACTIVE` state. 519 repeated StateReason reasons = 21 [(google.api.field_behavior) = OUTPUT_ONLY]; 520 521 // Output only. The type of resource associated with the spoke. 522 SpokeType spoke_type = 22 [(google.api.field_behavior) = OUTPUT_ONLY]; 523} 524 525message RouteTable { 526 option (google.api.resource) = { 527 type: "networkconnectivity.googleapis.com/RouteTable" 528 pattern: "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}" 529 }; 530 531 // Immutable. The name of the route table. Route table names must be unique. 532 // They use the following form: 533 // `projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}` 534 string name = 1 [(google.api.field_behavior) = IMMUTABLE]; 535 536 // Output only. The time the route table was created. 537 google.protobuf.Timestamp create_time = 2 538 [(google.api.field_behavior) = OUTPUT_ONLY]; 539 540 // Output only. The time the route table was last updated. 541 google.protobuf.Timestamp update_time = 3 542 [(google.api.field_behavior) = OUTPUT_ONLY]; 543 544 // Optional labels in key-value pair format. For more information about 545 // labels, see [Requirements for 546 // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). 547 map<string, string> labels = 4; 548 549 // An optional description of the route table. 550 string description = 5; 551 552 // Output only. The Google-generated UUID for the route table. This value is 553 // unique across all route table resources. If a route table is deleted and 554 // another with the same name is created, the new route table is assigned 555 // a different `uid`. 556 string uid = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 557 558 // Output only. The current lifecycle state of this route table. 559 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 560} 561 562// A route defines a path from VM instances within a spoke to a specific 563// destination resource. Only VPC spokes have routes. 564message Route { 565 option (google.api.resource) = { 566 type: "networkconnectivity.googleapis.com/HubRoute" 567 pattern: "projects/{project}/locations/global/hubs/{hub}/routeTables/{route_table}/routes/{route}" 568 }; 569 570 // Immutable. The name of the route. Route names must be unique. Route names 571 // use the following form: 572 // `projects/{project_number}/locations/global/hubs/{hub}/routeTables/{route_table_id}/routes/{route_id}` 573 string name = 3 [(google.api.field_behavior) = IMMUTABLE]; 574 575 // Output only. The time the route was created. 576 google.protobuf.Timestamp create_time = 4 577 [(google.api.field_behavior) = OUTPUT_ONLY]; 578 579 // Output only. The time the route was last updated. 580 google.protobuf.Timestamp update_time = 5 581 [(google.api.field_behavior) = OUTPUT_ONLY]; 582 583 // The destination IP address range. 584 string ip_cidr_range = 1; 585 586 // Output only. The route's type. Its type is determined by the properties of 587 // its IP address range. 588 RouteType type = 10 [(google.api.field_behavior) = OUTPUT_ONLY]; 589 590 // Immutable. The destination VPC network for packets on this route. 591 NextHopVpcNetwork next_hop_vpc_network = 2 592 [(google.api.field_behavior) = IMMUTABLE]; 593 594 // Optional labels in key-value pair format. For more information about 595 // labels, see [Requirements for 596 // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). 597 map<string, string> labels = 6; 598 599 // An optional description of the route. 600 string description = 7; 601 602 // Output only. The Google-generated UUID for the route. This value is unique 603 // across all Network Connectivity Center route resources. If a 604 // route is deleted and another with the same name is created, 605 // the new route is assigned a different `uid`. 606 string uid = 8 [(google.api.field_behavior) = OUTPUT_ONLY]; 607 608 // Output only. The current lifecycle state of the route. 609 State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY]; 610 611 // Immutable. The spoke that this route leads to. 612 // Example: projects/12345/locations/global/spokes/SPOKE 613 string spoke = 11 [ 614 (google.api.field_behavior) = IMMUTABLE, 615 (google.api.resource_reference) = { 616 type: "networkconnectivity.googleapis.com/Spoke" 617 } 618 ]; 619 620 // Output only. The location of the route. 621 // Uses the following form: "projects/{project}/locations/{location}" 622 // Example: projects/1234/locations/us-central1 623 string location = 12 [(google.api.field_behavior) = OUTPUT_ONLY]; 624} 625 626// A group represents a subset of spokes attached to a hub. 627message Group { 628 option (google.api.resource) = { 629 type: "networkconnectivity.googleapis.com/Group" 630 pattern: "projects/{project}/locations/global/hubs/{hub}/groups/{group}" 631 }; 632 633 // Immutable. The name of the group. Group names must be unique. They 634 // use the following form: 635 // `projects/{project_number}/locations/global/hubs/{hub}/groups/{group_id}` 636 string name = 1 [(google.api.field_behavior) = IMMUTABLE]; 637 638 // Output only. The time the group was created. 639 google.protobuf.Timestamp create_time = 2 640 [(google.api.field_behavior) = OUTPUT_ONLY]; 641 642 // Output only. The time the group was last updated. 643 google.protobuf.Timestamp update_time = 3 644 [(google.api.field_behavior) = OUTPUT_ONLY]; 645 646 // Optional. Labels in key-value pair format. For more information about 647 // labels, see [Requirements for 648 // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements). 649 map<string, string> labels = 4 [(google.api.field_behavior) = OPTIONAL]; 650 651 // Optional. The description of the group. 652 string description = 5 [(google.api.field_behavior) = OPTIONAL]; 653 654 // Output only. The Google-generated UUID for the group. This value is unique 655 // across all group resources. If a group is deleted and 656 // another with the same name is created, the new route table is assigned 657 // a different unique_id. 658 string uid = 6 [(google.api.field_behavior) = OUTPUT_ONLY]; 659 660 // Output only. The current lifecycle state of this group. 661 State state = 7 [(google.api.field_behavior) = OUTPUT_ONLY]; 662} 663 664// Request for 665// [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] 666// method. 667message ListHubsRequest { 668 // Required. The parent resource's name. 669 string parent = 1 [ 670 (google.api.field_behavior) = REQUIRED, 671 (google.api.resource_reference) = { 672 type: "locations.googleapis.com/Location" 673 } 674 ]; 675 676 // The maximum number of results per page to return. 677 int32 page_size = 2; 678 679 // The page token. 680 string page_token = 3; 681 682 // An expression that filters the list of results. 683 string filter = 4; 684 685 // Sort the results by a certain order. 686 string order_by = 5; 687} 688 689// Response for 690// [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs] 691// method. 692message ListHubsResponse { 693 // The requested hubs. 694 repeated Hub hubs = 1; 695 696 // The token for the next page of the response. To see more results, 697 // use this value as the page_token for your next request. If this value 698 // is empty, there are no more results. 699 string next_page_token = 2; 700 701 // Locations that could not be reached. 702 repeated string unreachable = 3; 703} 704 705// Request for 706// [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub] 707// method. 708message GetHubRequest { 709 // Required. The name of the hub resource to get. 710 string name = 1 [ 711 (google.api.field_behavior) = REQUIRED, 712 (google.api.resource_reference) = { 713 type: "networkconnectivity.googleapis.com/Hub" 714 } 715 ]; 716} 717 718// Request for 719// [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub] 720// method. 721message CreateHubRequest { 722 // Required. The parent resource. 723 string parent = 1 [ 724 (google.api.field_behavior) = REQUIRED, 725 (google.api.resource_reference) = { 726 type: "locations.googleapis.com/Location" 727 } 728 ]; 729 730 // Required. A unique identifier for the hub. 731 string hub_id = 2 [(google.api.field_behavior) = REQUIRED]; 732 733 // Required. The initial values for a new hub. 734 Hub hub = 3 [(google.api.field_behavior) = REQUIRED]; 735 736 // Optional. A request ID to identify requests. Specify a unique request ID so 737 // that if you must retry your request, the server knows to ignore the request 738 // if it has already been completed. The server guarantees that a request 739 // doesn't result in creation of duplicate commitments for at least 60 740 // minutes. 741 // 742 // For example, consider a situation where you make an initial request and 743 // the request times out. If you make the request again with the same request 744 // ID, the server can check to see whether the original operation 745 // was received. If it was, the server ignores the second request. This 746 // behavior prevents clients from mistakenly creating duplicate commitments. 747 // 748 // The request ID must be a valid UUID, with the exception that zero UUID is 749 // not supported (00000000-0000-0000-0000-000000000000). 750 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 751} 752 753// Request for 754// [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub] 755// method. 756message UpdateHubRequest { 757 // Optional. In the case of an update to an existing hub, field mask is used 758 // to specify the fields to be overwritten. The fields specified in the 759 // update_mask are relative to the resource, not the full request. A field is 760 // overwritten if it is in the mask. If the user does not provide a mask, then 761 // all fields are overwritten. 762 google.protobuf.FieldMask update_mask = 1 763 [(google.api.field_behavior) = OPTIONAL]; 764 765 // Required. The state that the hub should be in after the update. 766 Hub hub = 2 [(google.api.field_behavior) = REQUIRED]; 767 768 // Optional. A request ID to identify requests. Specify a unique request ID so 769 // that if you must retry your request, the server knows to ignore the request 770 // if it has already been completed. The server guarantees that a request 771 // doesn't result in creation of duplicate commitments for at least 60 772 // minutes. 773 // 774 // For example, consider a situation where you make an initial request and 775 // the request times out. If you make the request again with the same request 776 // ID, the server can check to see whether the original operation 777 // was received. If it was, the server ignores the second request. This 778 // behavior prevents clients from mistakenly creating duplicate commitments. 779 // 780 // The request ID must be a valid UUID, with the exception that zero UUID is 781 // not supported (00000000-0000-0000-0000-000000000000). 782 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 783} 784 785// The request for 786// [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub]. 787message DeleteHubRequest { 788 // Required. The name of the hub to delete. 789 string name = 1 [ 790 (google.api.field_behavior) = REQUIRED, 791 (google.api.resource_reference) = { 792 type: "networkconnectivity.googleapis.com/Hub" 793 } 794 ]; 795 796 // Optional. A request ID to identify requests. Specify a unique request ID so 797 // that if you must retry your request, the server knows to ignore the request 798 // if it has already been completed. The server guarantees that a request 799 // doesn't result in creation of duplicate commitments for at least 60 800 // minutes. 801 // 802 // For example, consider a situation where you make an initial request and 803 // the request times out. If you make the request again with the same request 804 // ID, the server can check to see whether the original operation 805 // was received. If it was, the server ignores the second request. This 806 // behavior prevents clients from mistakenly creating duplicate commitments. 807 // 808 // The request ID must be a valid UUID, with the exception that zero UUID is 809 // not supported (00000000-0000-0000-0000-000000000000). 810 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 811} 812 813// The request for 814// [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. 815// 816message ListHubSpokesRequest { 817 // Enum that controls which spoke fields are included in the response. 818 enum SpokeView { 819 // The spoke view is unspecified. When the spoke view is unspecified, the 820 // API returns the same fields as the `BASIC` view. 821 SPOKE_VIEW_UNSPECIFIED = 0; 822 823 // Includes `name`, `create_time`, `hub`, `unique_id`, `state`, `reasons`, 824 // and `spoke_type`. This is the default value. 825 BASIC = 1; 826 827 // Includes all spoke fields except `labels`. 828 // You can use the `DETAILED` view only when you set the `spoke_locations` 829 // field to `[global]`. 830 DETAILED = 2; 831 } 832 833 // Required. The name of the hub. 834 string name = 1 [ 835 (google.api.field_behavior) = REQUIRED, 836 (google.api.resource_reference) = { 837 type: "networkconnectivity.googleapis.com/Hub" 838 } 839 ]; 840 841 // A list of locations. 842 // Specify one of the following: `[global]`, a single region (for 843 // example, `[us-central1]`), or a combination of 844 // values (for example, `[global, us-central1, us-west1]`). 845 // If the spoke_locations field is populated, the list of results 846 // includes only spokes in the specified location. 847 // If the spoke_locations field is not populated, the list of results 848 // includes spokes in all locations. 849 repeated string spoke_locations = 2; 850 851 // The maximum number of results to return per page. 852 int32 page_size = 3; 853 854 // The page token. 855 string page_token = 4; 856 857 // An expression that filters the list of results. 858 string filter = 5; 859 860 // Sort the results by name or create_time. 861 string order_by = 6; 862 863 // The view of the spoke to return. 864 // The view that you use determines which spoke fields are included in the 865 // response. 866 SpokeView view = 7; 867} 868 869// The response for 870// [HubService.ListHubSpokes][google.cloud.networkconnectivity.v1.HubService.ListHubSpokes]. 871message ListHubSpokesResponse { 872 // The requested spokes. 873 // The spoke fields can be partially populated based on the `view` field in 874 // the request message. 875 repeated Spoke spokes = 1; 876 877 // The token for the next page of the response. To see more results, 878 // use this value as the page_token for your next request. If this value 879 // is empty, there are no more results. 880 string next_page_token = 2; 881 882 // Locations that could not be reached. 883 repeated string unreachable = 3; 884} 885 886// The request for 887// [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. 888message ListSpokesRequest { 889 // Required. The parent resource. 890 string parent = 1 [ 891 (google.api.field_behavior) = REQUIRED, 892 (google.api.resource_reference) = { 893 type: "locations.googleapis.com/Location" 894 } 895 ]; 896 897 // The maximum number of results to return per page. 898 int32 page_size = 2; 899 900 // The page token. 901 string page_token = 3; 902 903 // An expression that filters the list of results. 904 string filter = 4; 905 906 // Sort the results by a certain order. 907 string order_by = 5; 908} 909 910// The response for 911// [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes]. 912message ListSpokesResponse { 913 // The requested spokes. 914 repeated Spoke spokes = 1; 915 916 // The token for the next page of the response. To see more results, 917 // use this value as the page_token for your next request. If this value 918 // is empty, there are no more results. 919 string next_page_token = 2; 920 921 // Locations that could not be reached. 922 repeated string unreachable = 3; 923} 924 925// The request for 926// [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke]. 927message GetSpokeRequest { 928 // Required. The name of the spoke resource. 929 string name = 1 [ 930 (google.api.field_behavior) = REQUIRED, 931 (google.api.resource_reference) = { 932 type: "networkconnectivity.googleapis.com/Spoke" 933 } 934 ]; 935} 936 937// The request for 938// [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke]. 939message CreateSpokeRequest { 940 // Required. The parent resource. 941 string parent = 1 [ 942 (google.api.field_behavior) = REQUIRED, 943 (google.api.resource_reference) = { 944 type: "locations.googleapis.com/Location" 945 } 946 ]; 947 948 // Required. Unique id for the spoke to create. 949 string spoke_id = 2 [(google.api.field_behavior) = REQUIRED]; 950 951 // Required. The initial values for a new spoke. 952 Spoke spoke = 3 [(google.api.field_behavior) = REQUIRED]; 953 954 // Optional. A request ID to identify requests. Specify a unique request ID so 955 // that if you must retry your request, the server knows to ignore the request 956 // if it has already been completed. The server guarantees that a request 957 // doesn't result in creation of duplicate commitments for at least 60 958 // minutes. 959 // 960 // For example, consider a situation where you make an initial request and 961 // the request times out. If you make the request again with the same request 962 // ID, the server can check to see whether the original operation 963 // was received. If it was, the server ignores the second request. This 964 // behavior prevents clients from mistakenly creating duplicate commitments. 965 // 966 // The request ID must be a valid UUID, with the exception that zero UUID is 967 // not supported (00000000-0000-0000-0000-000000000000). 968 string request_id = 4 [(google.api.field_behavior) = OPTIONAL]; 969} 970 971// Request for 972// [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke] 973// method. 974message UpdateSpokeRequest { 975 // Optional. In the case of an update to an existing spoke, field mask is used 976 // to specify the fields to be overwritten. The fields specified in the 977 // update_mask are relative to the resource, not the full request. A field is 978 // overwritten if it is in the mask. If the user does not provide a mask, then 979 // all fields are overwritten. 980 google.protobuf.FieldMask update_mask = 1 981 [(google.api.field_behavior) = OPTIONAL]; 982 983 // Required. The state that the spoke should be in after the update. 984 Spoke spoke = 2 [(google.api.field_behavior) = REQUIRED]; 985 986 // Optional. A request ID to identify requests. Specify a unique request ID so 987 // that if you must retry your request, the server knows to ignore the request 988 // if it has already been completed. The server guarantees that a request 989 // doesn't result in creation of duplicate commitments for at least 60 990 // minutes. 991 // 992 // For example, consider a situation where you make an initial request and 993 // the request times out. If you make the request again with the same request 994 // ID, the server can check to see whether the original operation 995 // was received. If it was, the server ignores the second request. This 996 // behavior prevents clients from mistakenly creating duplicate commitments. 997 // 998 // The request ID must be a valid UUID, with the exception that zero UUID is 999 // not supported (00000000-0000-0000-0000-000000000000). 1000 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 1001} 1002 1003// The request for 1004// [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke]. 1005message DeleteSpokeRequest { 1006 // Required. The name of the spoke to delete. 1007 string name = 1 [ 1008 (google.api.field_behavior) = REQUIRED, 1009 (google.api.resource_reference) = { 1010 type: "networkconnectivity.googleapis.com/Spoke" 1011 } 1012 ]; 1013 1014 // Optional. A request ID to identify requests. Specify a unique request ID so 1015 // that if you must retry your request, the server knows to ignore the request 1016 // if it has already been completed. The server guarantees that a request 1017 // doesn't result in creation of duplicate commitments for at least 60 1018 // minutes. 1019 // 1020 // For example, consider a situation where you make an initial request and 1021 // the request times out. If you make the request again with the same request 1022 // ID, the server can check to see whether the original operation 1023 // was received. If it was, the server ignores the second request. This 1024 // behavior prevents clients from mistakenly creating duplicate commitments. 1025 // 1026 // The request ID must be a valid UUID, with the exception that zero UUID is 1027 // not supported (00000000-0000-0000-0000-000000000000). 1028 string request_id = 2 [(google.api.field_behavior) = OPTIONAL]; 1029} 1030 1031// The request for 1032// [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. 1033message AcceptHubSpokeRequest { 1034 // Required. The name of the hub into which to accept the spoke. 1035 string name = 1 [ 1036 (google.api.field_behavior) = REQUIRED, 1037 (google.api.resource_reference) = { 1038 type: "networkconnectivity.googleapis.com/Hub" 1039 } 1040 ]; 1041 1042 // Required. The URI of the spoke to accept into the hub. 1043 string spoke_uri = 2 [ 1044 (google.api.field_behavior) = REQUIRED, 1045 (google.api.resource_reference) = { 1046 type: "networkconnectivity.googleapis.com/Spoke" 1047 } 1048 ]; 1049 1050 // Optional. A request ID to identify requests. Specify a unique request ID so 1051 // that if you must retry your request, the server knows to ignore the request 1052 // if it has already been completed. The server guarantees that a request 1053 // doesn't result in creation of duplicate commitments for at least 60 1054 // minutes. 1055 // 1056 // For example, consider a situation where you make an initial request and 1057 // the request times out. If you make the request again with the same request 1058 // ID, the server can check to see whether the original operation 1059 // was received. If it was, the server ignores the second request. This 1060 // behavior prevents clients from mistakenly creating duplicate commitments. 1061 // 1062 // The request ID must be a valid UUID, with the exception that zero UUID is 1063 // not supported (00000000-0000-0000-0000-000000000000). 1064 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 1065} 1066 1067// The response for 1068// [HubService.AcceptHubSpoke][google.cloud.networkconnectivity.v1.HubService.AcceptHubSpoke]. 1069message AcceptHubSpokeResponse { 1070 // The spoke that was operated on. 1071 Spoke spoke = 1; 1072} 1073 1074// The request for 1075// [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. 1076message RejectHubSpokeRequest { 1077 // Required. The name of the hub from which to reject the spoke. 1078 string name = 1 [ 1079 (google.api.field_behavior) = REQUIRED, 1080 (google.api.resource_reference) = { 1081 type: "networkconnectivity.googleapis.com/Hub" 1082 } 1083 ]; 1084 1085 // Required. The URI of the spoke to reject from the hub. 1086 string spoke_uri = 2 [ 1087 (google.api.field_behavior) = REQUIRED, 1088 (google.api.resource_reference) = { 1089 type: "networkconnectivity.googleapis.com/Spoke" 1090 } 1091 ]; 1092 1093 // Optional. A request ID to identify requests. Specify a unique request ID so 1094 // that if you must retry your request, the server knows to ignore the request 1095 // if it has already been completed. The server guarantees that a request 1096 // doesn't result in creation of duplicate commitments for at least 60 1097 // minutes. 1098 // 1099 // For example, consider a situation where you make an initial request and 1100 // the request times out. If you make the request again with the same request 1101 // ID, the server can check to see whether the original operation 1102 // was received. If it was, the server ignores the second request. This 1103 // behavior prevents clients from mistakenly creating duplicate commitments. 1104 // 1105 // The request ID must be a valid UUID, with the exception that zero UUID is 1106 // not supported (00000000-0000-0000-0000-000000000000). 1107 string request_id = 3 [(google.api.field_behavior) = OPTIONAL]; 1108 1109 // Optional. Additional information provided by the hub administrator. 1110 string details = 4 [(google.api.field_behavior) = OPTIONAL]; 1111} 1112 1113// The response for 1114// [HubService.RejectHubSpoke][google.cloud.networkconnectivity.v1.HubService.RejectHubSpoke]. 1115message RejectHubSpokeResponse { 1116 // The spoke that was operated on. 1117 Spoke spoke = 1; 1118} 1119 1120// The request for 1121// [HubService.GetRouteTable][google.cloud.networkconnectivity.v1.HubService.GetRouteTable]. 1122message GetRouteTableRequest { 1123 // Required. The name of the route table resource. 1124 string name = 1 [ 1125 (google.api.field_behavior) = REQUIRED, 1126 (google.api.resource_reference) = { 1127 type: "networkconnectivity.googleapis.com/RouteTable" 1128 } 1129 ]; 1130} 1131 1132// The request for 1133// [HubService.GetRoute][google.cloud.networkconnectivity.v1.HubService.GetRoute]. 1134message GetRouteRequest { 1135 // Required. The name of the route resource. 1136 string name = 1 [ 1137 (google.api.field_behavior) = REQUIRED, 1138 (google.api.resource_reference) = { 1139 type: "networkconnectivity.googleapis.com/HubRoute" 1140 } 1141 ]; 1142} 1143 1144// Request for 1145// [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] 1146// method. 1147message ListRoutesRequest { 1148 // Required. The parent resource's name. 1149 string parent = 1 [ 1150 (google.api.field_behavior) = REQUIRED, 1151 (google.api.resource_reference) = { 1152 type: "networkconnectivity.googleapis.com/RouteTable" 1153 } 1154 ]; 1155 1156 // The maximum number of results to return per page. 1157 int32 page_size = 2; 1158 1159 // The page token. 1160 string page_token = 3; 1161 1162 // An expression that filters the list of results. 1163 string filter = 4; 1164 1165 // Sort the results by a certain order. 1166 string order_by = 5; 1167} 1168 1169// Response for 1170// [HubService.ListRoutes][google.cloud.networkconnectivity.v1.HubService.ListRoutes] 1171// method. 1172message ListRoutesResponse { 1173 // The requested routes. 1174 repeated Route routes = 1; 1175 1176 // The token for the next page of the response. To see more results, 1177 // use this value as the page_token for your next request. If this value 1178 // is empty, there are no more results. 1179 string next_page_token = 2; 1180 1181 // RouteTables that could not be reached. 1182 repeated string unreachable = 3; 1183} 1184 1185// Request for 1186// [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] 1187// method. 1188message ListRouteTablesRequest { 1189 // Required. The parent resource's name. 1190 string parent = 1 [ 1191 (google.api.field_behavior) = REQUIRED, 1192 (google.api.resource_reference) = { 1193 type: "networkconnectivity.googleapis.com/Hub" 1194 } 1195 ]; 1196 1197 // The maximum number of results to return per page. 1198 int32 page_size = 2; 1199 1200 // The page token. 1201 string page_token = 3; 1202 1203 // An expression that filters the list of results. 1204 string filter = 4; 1205 1206 // Sort the results by a certain order. 1207 string order_by = 5; 1208} 1209 1210// Response for 1211// [HubService.ListRouteTables][google.cloud.networkconnectivity.v1.HubService.ListRouteTables] 1212// method. 1213message ListRouteTablesResponse { 1214 // The requested route tables. 1215 repeated RouteTable route_tables = 1; 1216 1217 // The token for the next page of the response. To see more results, 1218 // use this value as the page_token for your next request. If this value 1219 // is empty, there are no more results. 1220 string next_page_token = 2; 1221 1222 // Hubs that could not be reached. 1223 repeated string unreachable = 3; 1224} 1225 1226// Request for 1227// [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] 1228// method. 1229message ListGroupsRequest { 1230 // Required. The parent resource's name. 1231 string parent = 1 [ 1232 (google.api.field_behavior) = REQUIRED, 1233 (google.api.resource_reference) = { 1234 type: "networkconnectivity.googleapis.com/Hub" 1235 } 1236 ]; 1237 1238 // The maximum number of results to return per page. 1239 int32 page_size = 2; 1240 1241 // The page token. 1242 string page_token = 3; 1243 1244 // An expression that filters the list of results. 1245 string filter = 4; 1246 1247 // Sort the results by a certain order. 1248 string order_by = 5; 1249} 1250 1251// Response for 1252// [HubService.ListGroups][google.cloud.networkconnectivity.v1.HubService.ListGroups] 1253// method. 1254message ListGroupsResponse { 1255 // The requested groups. 1256 repeated Group groups = 1; 1257 1258 // The token for the next page of the response. To see more results, 1259 // use this value as the page_token for your next request. If this value 1260 // is empty, there are no more results. 1261 string next_page_token = 2; 1262 1263 // Hubs that could not be reached. 1264 repeated string unreachable = 3; 1265} 1266 1267// A collection of Cloud VPN tunnel resources. These resources should be 1268// redundant HA VPN tunnels that all advertise the same prefixes to Google 1269// Cloud. Alternatively, in a passive/active configuration, all tunnels 1270// should be capable of advertising the same prefixes. 1271message LinkedVpnTunnels { 1272 // The URIs of linked VPN tunnel resources. 1273 repeated string uris = 1 [(google.api.resource_reference) = { 1274 type: "compute.googleapis.com/VpnTunnel" 1275 }]; 1276 1277 // A value that controls whether site-to-site data transfer is enabled for 1278 // these resources. Data transfer is available only in [supported 1279 // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). 1280 bool site_to_site_data_transfer = 2; 1281 1282 // Output only. The VPC network where these VPN tunnels are located. 1283 string vpc_network = 3 [ 1284 (google.api.field_behavior) = OUTPUT_ONLY, 1285 (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } 1286 ]; 1287} 1288 1289// A collection of VLAN attachment resources. These resources should 1290// be redundant attachments that all advertise the same prefixes to Google 1291// Cloud. Alternatively, in active/passive configurations, all attachments 1292// should be capable of advertising the same prefixes. 1293message LinkedInterconnectAttachments { 1294 // The URIs of linked interconnect attachment resources 1295 repeated string uris = 1 [(google.api.resource_reference) = { 1296 type: "compute.googleapis.com/InterconnectAttachment" 1297 }]; 1298 1299 // A value that controls whether site-to-site data transfer is enabled for 1300 // these resources. Data transfer is available only in [supported 1301 // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). 1302 bool site_to_site_data_transfer = 2; 1303 1304 // Output only. The VPC network where these VLAN attachments are located. 1305 string vpc_network = 3 [ 1306 (google.api.field_behavior) = OUTPUT_ONLY, 1307 (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } 1308 ]; 1309} 1310 1311// A collection of router appliance instances. If you configure multiple router 1312// appliance instances to receive data from the same set of sites outside of 1313// Google Cloud, we recommend that you associate those instances with the same 1314// spoke. 1315message LinkedRouterApplianceInstances { 1316 // The list of router appliance instances. 1317 repeated RouterApplianceInstance instances = 1; 1318 1319 // A value that controls whether site-to-site data transfer is enabled for 1320 // these resources. Data transfer is available only in [supported 1321 // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations). 1322 bool site_to_site_data_transfer = 2; 1323 1324 // Output only. The VPC network where these router appliance instances are 1325 // located. 1326 string vpc_network = 3 [ 1327 (google.api.field_behavior) = OUTPUT_ONLY, 1328 (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } 1329 ]; 1330} 1331 1332// An existing VPC network. 1333message LinkedVpcNetwork { 1334 // Required. The URI of the VPC network resource. 1335 string uri = 1 [ 1336 (google.api.field_behavior) = REQUIRED, 1337 (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } 1338 ]; 1339 1340 // Optional. IP ranges encompassing the subnets to be excluded from peering. 1341 repeated string exclude_export_ranges = 2 1342 [(google.api.field_behavior) = OPTIONAL]; 1343} 1344 1345// A router appliance instance is a Compute Engine virtual machine (VM) instance 1346// that acts as a BGP speaker. A router appliance instance is specified by the 1347// URI of the VM and the internal IP address of one of the VM's network 1348// interfaces. 1349message RouterApplianceInstance { 1350 // The URI of the VM. 1351 string virtual_machine = 1 [(google.api.resource_reference) = { 1352 type: "compute.googleapis.com/Instance" 1353 }]; 1354 1355 // The IP address on the VM to use for peering. 1356 string ip_address = 3; 1357} 1358 1359// Metadata about locations 1360message LocationMetadata { 1361 // List of supported features 1362 repeated LocationFeature location_features = 1; 1363} 1364 1365message NextHopVpcNetwork { 1366 // The URI of the VPC network resource 1367 string uri = 1 [ 1368 (google.api.resource_reference) = { type: "compute.googleapis.com/Network" } 1369 ]; 1370} 1371 1372// Summarizes information about the spokes associated with a hub. 1373// The summary includes a count of spokes according to type 1374// and according to state. If any spokes are inactive, 1375// the summary also lists the reasons they are inactive, 1376// including a count for each reason. 1377message SpokeSummary { 1378 // The number of spokes of a given type that are associated 1379 // with a specific hub. The type indicates what kind of 1380 // resource is associated with the spoke. 1381 message SpokeTypeCount { 1382 // Output only. The type of the spokes. 1383 SpokeType spoke_type = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1384 1385 // Output only. The total number of spokes of this type that are 1386 // associated with the hub. 1387 int64 count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1388 } 1389 1390 // The number of spokes that are in a particular state 1391 // and associated with a given hub. 1392 message SpokeStateCount { 1393 // Output only. The state of the spokes. 1394 State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; 1395 1396 // Output only. The total number of spokes that are in this state 1397 // and associated with a given hub. 1398 int64 count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1399 } 1400 1401 // The number of spokes in the hub that are inactive for this reason. 1402 message SpokeStateReasonCount { 1403 // Output only. The reason that a spoke is inactive. 1404 Spoke.StateReason.Code state_reason_code = 1 1405 [(google.api.field_behavior) = OUTPUT_ONLY]; 1406 1407 // Output only. The total number of spokes that are inactive for a 1408 // particular reason and associated with a given hub. 1409 int64 count = 2 [(google.api.field_behavior) = OUTPUT_ONLY]; 1410 } 1411 1412 // Output only. Counts the number of spokes of each type that are 1413 // associated with a specific hub. 1414 repeated SpokeTypeCount spoke_type_counts = 1 1415 [(google.api.field_behavior) = OUTPUT_ONLY]; 1416 1417 // Output only. Counts the number of spokes that are in each state 1418 // and associated with a given hub. 1419 repeated SpokeStateCount spoke_state_counts = 2 1420 [(google.api.field_behavior) = OUTPUT_ONLY]; 1421 1422 // Output only. Counts the number of spokes that are inactive for each 1423 // possible reason and associated with a given hub. 1424 repeated SpokeStateReasonCount spoke_state_reason_counts = 3 1425 [(google.api.field_behavior) = OUTPUT_ONLY]; 1426} 1427 1428// The request for 1429// [HubService.GetGroup][google.cloud.networkconnectivity.v1.HubService.GetGroup]. 1430message GetGroupRequest { 1431 // Required. The name of the route table resource. 1432 string name = 1 [ 1433 (google.api.field_behavior) = REQUIRED, 1434 (google.api.resource_reference) = { 1435 type: "networkconnectivity.googleapis.com/Group" 1436 } 1437 ]; 1438} 1439