1- // Copyright 2021 Google LLC
1+ // Copyright 2022 Google LLC
22//
33// Licensed under the Apache License, Version 2.0 (the "License");
44// you may not use this file except in compliance with the License.
@@ -164,9 +164,39 @@ service HubService {
164164 }
165165}
166166
167+ // The State enum represents the lifecycle stage of a Network Connectivity
168+ // Center resource.
169+ enum State {
170+ // No state information available
171+ STATE_UNSPECIFIED = 0 ;
172+
173+ // The resource's create operation is in progress
174+ CREATING = 1 ;
175+
176+ // The resource is active
177+ ACTIVE = 2 ;
178+
179+ // The resource's Delete operation is in progress
180+ DELETING = 3 ;
181+ }
182+
183+ // Supported features for a location
184+ enum LocationFeature {
185+ // No publicly supported feature in this location
186+ LOCATION_FEATURE_UNSPECIFIED = 0 ;
187+
188+ // Site-to-cloud spokes are supported in this location
189+ SITE_TO_CLOUD_SPOKES = 1 ;
190+
191+ // Site-to-site spokes are supported in this location
192+ SITE_TO_SITE_SPOKES = 2 ;
193+ }
194+
167195// A hub is a collection of spokes. A single hub can contain spokes from
168- // multiple regions. However, all of a hub's spokes must be associated with
169- // resources that reside in the same VPC network.
196+ // multiple regions. However, if any of a hub's spokes use the data transfer
197+ // feature, the resources associated with those spokes must all reside in the
198+ // same VPC network. Spokes that do not use data transfer can be associated
199+ // with any VPC network in your project.
170200message Hub {
171201 option (google.api.resource ) = {
172202 type : "networkconnectivity.googleapis.com/Hub"
@@ -200,38 +230,27 @@ message Hub {
200230 // Output only. The current lifecycle state of this hub.
201231 State state = 9 [(google.api.field_behavior ) = OUTPUT_ONLY ];
202232
203- // The VPC network associated with this hub's spokes. All of the VPN tunnels,
204- // VLAN attachments, and router appliance instances referenced by this hub's
205- // spokes must belong to this VPC network.
233+ // The VPC networks associated with this hub's spokes.
206234 //
207235 // This field is read-only. Network Connectivity Center automatically
208236 // populates it based on the set of spokes attached to the hub.
209237 repeated RoutingVPC routing_vpcs = 10 ;
210238}
211239
212- // The State enum represents the lifecycle stage of a Network Connectivity
213- // Center resource.
214- enum State {
215- // No state information available
216- STATE_UNSPECIFIED = 0 ;
217-
218- // The resource's create operation is in progress
219- CREATING = 1 ;
220-
221- // The resource is active
222- ACTIVE = 2 ;
223-
224- // The resource's Delete operation is in progress
225- DELETING = 3 ;
226- }
227-
228- // RoutingVPC contains information about the VPC network that is associated with
229- // a hub's spokes.
240+ // RoutingVPC contains information about the VPC networks that are associated
241+ // with a hub's spokes.
230242message RoutingVPC {
231243 // The URI of the VPC network.
232244 string uri = 1 [(google.api.resource_reference ) = {
233245 type : "compute.googleapis.com/Network"
234246 }];
247+
248+ // Output only. If true, indicates that this VPC network is currently associated with
249+ // spokes that use the data transfer feature (spokes where the
250+ // site_to_site_data_transfer field is set to true). If you create new spokes
251+ // that use data transfer, they must be associated with this VPC network. At
252+ // most, one VPC network will have this field set to true.
253+ bool required_for_new_site_to_site_data_transfer_spokes = 2 [(google.api.field_behavior ) = OUTPUT_ONLY ];
235254}
236255
237256// A spoke represents a connection between your Google Cloud network resources
@@ -577,8 +596,8 @@ message LinkedVpnTunnels {
577596 }];
578597
579598 // A value that controls whether site-to-site data transfer is enabled for
580- // these resources. This field is set to false by default, but you must set it
581- // to true. Note that data transfer is available only in supported locations.
599+ // these resources. Data transfer is available only in [supported
600+ // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ locations) .
582601 bool site_to_site_data_transfer = 2 ;
583602}
584603
@@ -593,21 +612,22 @@ message LinkedInterconnectAttachments {
593612 }];
594613
595614 // A value that controls whether site-to-site data transfer is enabled for
596- // these resources. This field is set to false by default, but you must set it
597- // to true. Note that data transfer is available only in supported locations.
615+ // these resources. Data transfer is available only in [supported
616+ // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ locations) .
598617 bool site_to_site_data_transfer = 2 ;
599618}
600619
601- // A collection of router appliance instances. If you have multiple router
602- // appliance instances connected to the same site, they should all be attached
603- // to the same spoke.
620+ // A collection of router appliance instances. If you configure multiple router
621+ // appliance instances to receive data from the same set of sites outside of
622+ // Google Cloud, we recommend that you associate those instances with the same
623+ // spoke.
604624message LinkedRouterApplianceInstances {
605625 // The list of router appliance instances.
606626 repeated RouterApplianceInstance instances = 1 ;
607627
608628 // A value that controls whether site-to-site data transfer is enabled for
609- // these resources. This field is set to false by default, but you must set it
610- // to true. Note that data transfer is available only in supported locations.
629+ // these resources. Data transfer is available only in [supported
630+ // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/ locations) .
611631 bool site_to_site_data_transfer = 2 ;
612632}
613633
@@ -624,3 +644,9 @@ message RouterApplianceInstance {
624644 // The IP address on the VM to use for peering.
625645 string ip_address = 3 ;
626646}
647+
648+ // Metadata about locations
649+ message LocationMetadata {
650+ // List of supported features
651+ repeated LocationFeature location_features = 1 ;
652+ }
0 commit comments