hub.proto 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694
  1. // Copyright 2022 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. syntax = "proto3";
  15. package google.cloud.networkconnectivity.v1;
  16. import "google/api/annotations.proto";
  17. import "google/api/client.proto";
  18. import "google/api/field_behavior.proto";
  19. import "google/api/resource.proto";
  20. import "google/longrunning/operations.proto";
  21. import "google/protobuf/field_mask.proto";
  22. import "google/protobuf/timestamp.proto";
  23. option csharp_namespace = "Google.Cloud.NetworkConnectivity.V1";
  24. option go_package = "google.golang.org/genproto/googleapis/cloud/networkconnectivity/v1;networkconnectivity";
  25. option java_multiple_files = true;
  26. option java_outer_classname = "HubProto";
  27. option java_package = "com.google.cloud.networkconnectivity.v1";
  28. option php_namespace = "Google\\Cloud\\NetworkConnectivity\\V1";
  29. option ruby_package = "Google::Cloud::NetworkConnectivity::V1";
  30. option (google.api.resource_definition) = {
  31. type: "compute.googleapis.com/VpnTunnel"
  32. pattern: "projects/{project}/regions/{region}/vpnTunnels/{resource_id}"
  33. };
  34. option (google.api.resource_definition) = {
  35. type: "compute.googleapis.com/Instance"
  36. pattern: "projects/{project}/zones/{zone}/instances/{instance}"
  37. };
  38. // Network Connectivity Center is a hub-and-spoke abstraction for network
  39. // connectivity management in Google Cloud. It reduces operational complexity
  40. // through a simple, centralized connectivity management model.
  41. service HubService {
  42. option (google.api.default_host) = "networkconnectivity.googleapis.com";
  43. option (google.api.oauth_scopes) =
  44. "https://www.googleapis.com/auth/cloud-platform";
  45. // Lists the Network Connectivity Center hubs associated with a given project.
  46. rpc ListHubs(ListHubsRequest) returns (ListHubsResponse) {
  47. option (google.api.http) = {
  48. get: "/v1/{parent=projects/*/locations/global}/hubs"
  49. };
  50. option (google.api.method_signature) = "parent";
  51. }
  52. // Gets details about a Network Connectivity Center hub.
  53. rpc GetHub(GetHubRequest) returns (Hub) {
  54. option (google.api.http) = {
  55. get: "/v1/{name=projects/*/locations/global/hubs/*}"
  56. };
  57. option (google.api.method_signature) = "name";
  58. }
  59. // Creates a new Network Connectivity Center hub in the specified project.
  60. rpc CreateHub(CreateHubRequest) returns (google.longrunning.Operation) {
  61. option (google.api.http) = {
  62. post: "/v1/{parent=projects/*/locations/global}/hubs"
  63. body: "hub"
  64. };
  65. option (google.api.method_signature) = "parent,hub,hub_id";
  66. option (google.longrunning.operation_info) = {
  67. response_type: "Hub"
  68. metadata_type: "OperationMetadata"
  69. };
  70. }
  71. // Updates the description and/or labels of a Network Connectivity Center
  72. // hub.
  73. rpc UpdateHub(UpdateHubRequest) returns (google.longrunning.Operation) {
  74. option (google.api.http) = {
  75. patch: "/v1/{hub.name=projects/*/locations/global/hubs/*}"
  76. body: "hub"
  77. };
  78. option (google.api.method_signature) = "hub,update_mask";
  79. option (google.longrunning.operation_info) = {
  80. response_type: "Hub"
  81. metadata_type: "OperationMetadata"
  82. };
  83. }
  84. // Deletes a Network Connectivity Center hub.
  85. rpc DeleteHub(DeleteHubRequest) returns (google.longrunning.Operation) {
  86. option (google.api.http) = {
  87. delete: "/v1/{name=projects/*/locations/global/hubs/*}"
  88. };
  89. option (google.api.method_signature) = "name";
  90. option (google.longrunning.operation_info) = {
  91. response_type: "google.protobuf.Empty"
  92. metadata_type: "OperationMetadata"
  93. };
  94. }
  95. // Lists the Network Connectivity Center spokes in a specified project and
  96. // location.
  97. rpc ListSpokes(ListSpokesRequest) returns (ListSpokesResponse) {
  98. option (google.api.http) = {
  99. get: "/v1/{parent=projects/*/locations/*}/spokes"
  100. };
  101. option (google.api.method_signature) = "parent";
  102. }
  103. // Gets details about a Network Connectivity Center spoke.
  104. rpc GetSpoke(GetSpokeRequest) returns (Spoke) {
  105. option (google.api.http) = {
  106. get: "/v1/{name=projects/*/locations/*/spokes/*}"
  107. };
  108. option (google.api.method_signature) = "name";
  109. }
  110. // Creates a Network Connectivity Center spoke.
  111. rpc CreateSpoke(CreateSpokeRequest) returns (google.longrunning.Operation) {
  112. option (google.api.http) = {
  113. post: "/v1/{parent=projects/*/locations/*}/spokes"
  114. body: "spoke"
  115. };
  116. option (google.api.method_signature) = "parent,spoke,spoke_id";
  117. option (google.longrunning.operation_info) = {
  118. response_type: "Spoke"
  119. metadata_type: "OperationMetadata"
  120. };
  121. }
  122. // Updates the parameters of a Network Connectivity Center spoke.
  123. rpc UpdateSpoke(UpdateSpokeRequest) returns (google.longrunning.Operation) {
  124. option (google.api.http) = {
  125. patch: "/v1/{spoke.name=projects/*/locations/*/spokes/*}"
  126. body: "spoke"
  127. };
  128. option (google.api.method_signature) = "spoke,update_mask";
  129. option (google.longrunning.operation_info) = {
  130. response_type: "Spoke"
  131. metadata_type: "OperationMetadata"
  132. };
  133. }
  134. // Deletes a Network Connectivity Center spoke.
  135. rpc DeleteSpoke(DeleteSpokeRequest) returns (google.longrunning.Operation) {
  136. option (google.api.http) = {
  137. delete: "/v1/{name=projects/*/locations/*/spokes/*}"
  138. };
  139. option (google.api.method_signature) = "name";
  140. option (google.longrunning.operation_info) = {
  141. response_type: "google.protobuf.Empty"
  142. metadata_type: "OperationMetadata"
  143. };
  144. }
  145. }
  146. // Supported features for a location
  147. enum LocationFeature {
  148. // No publicly supported feature in this location
  149. LOCATION_FEATURE_UNSPECIFIED = 0;
  150. // Site-to-cloud spokes are supported in this location
  151. SITE_TO_CLOUD_SPOKES = 1;
  152. // Site-to-site spokes are supported in this location
  153. SITE_TO_SITE_SPOKES = 2;
  154. }
  155. // The State enum represents the lifecycle stage of a Network Connectivity
  156. // Center resource.
  157. enum State {
  158. // No state information available
  159. STATE_UNSPECIFIED = 0;
  160. // The resource's create operation is in progress
  161. CREATING = 1;
  162. // The resource is active
  163. ACTIVE = 2;
  164. // The resource's Delete operation is in progress
  165. DELETING = 3;
  166. // The resource's Update operation is in progress
  167. UPDATING = 6;
  168. }
  169. // A Network Connectivity Center hub is a collection of spokes. A single hub
  170. // can contain spokes from multiple regions. However, if any of a hub's spokes
  171. // use the data transfer feature, the resources associated with those spokes
  172. // must all reside in the same VPC network. Spokes that do not use data
  173. // transfer can be associated with any VPC network in your project.
  174. message Hub {
  175. option (google.api.resource) = {
  176. type: "networkconnectivity.googleapis.com/Hub"
  177. pattern: "projects/{project}/locations/global/hubs/{hub}"
  178. };
  179. // Immutable. The name of the hub. Hub names must be unique. They use the
  180. // following form:
  181. // `projects/{project_number}/locations/global/hubs/{hub_id}`
  182. string name = 1 [(google.api.field_behavior) = IMMUTABLE];
  183. // Output only. The time the hub was created.
  184. google.protobuf.Timestamp create_time = 2
  185. [(google.api.field_behavior) = OUTPUT_ONLY];
  186. // Output only. The time the hub was last updated.
  187. google.protobuf.Timestamp update_time = 3
  188. [(google.api.field_behavior) = OUTPUT_ONLY];
  189. // Optional labels in key:value format. For more information about labels, see
  190. // [Requirements for
  191. // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
  192. map<string, string> labels = 4;
  193. // An optional description of the hub.
  194. string description = 5;
  195. // Output only. The Google-generated UUID for the hub. This value is unique
  196. // across all hub resources. If a hub is deleted and another with the same
  197. // name is created, the new hub is assigned a different unique_id.
  198. string unique_id = 8 [(google.api.field_behavior) = OUTPUT_ONLY];
  199. // Output only. The current lifecycle state of this hub.
  200. State state = 9 [(google.api.field_behavior) = OUTPUT_ONLY];
  201. // The VPC networks associated with this hub's spokes.
  202. //
  203. // This field is read-only. Network Connectivity Center automatically
  204. // populates it based on the set of spokes attached to the hub.
  205. repeated RoutingVPC routing_vpcs = 10;
  206. }
  207. // RoutingVPC contains information about the VPC networks associated
  208. // with the spokes of a Network Connectivity Center hub.
  209. message RoutingVPC {
  210. // The URI of the VPC network.
  211. string uri = 1 [
  212. (google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
  213. ];
  214. // Output only. If true, indicates that this VPC network is currently
  215. // associated with spokes that use the data transfer feature (spokes where the
  216. // site_to_site_data_transfer field is set to true). If you create new spokes
  217. // that use data transfer, they must be associated with this VPC network. At
  218. // most, one VPC network will have this field set to true.
  219. bool required_for_new_site_to_site_data_transfer_spokes = 2
  220. [(google.api.field_behavior) = OUTPUT_ONLY];
  221. }
  222. // A Network Connectivity Center spoke represents a connection between your
  223. // Google Cloud network resources and a non-Google-Cloud network.
  224. //
  225. // When you create a spoke, you associate it with a hub. You must also identify
  226. // a value for exactly one of the following fields:
  227. //
  228. // * linked_vpn_tunnels
  229. // * linked_interconnect_attachments
  230. // * linked_router_appliance_instances
  231. message Spoke {
  232. option (google.api.resource) = {
  233. type: "networkconnectivity.googleapis.com/Spoke"
  234. pattern: "projects/{project}/locations/{location}/spokes/{spoke}"
  235. };
  236. // Immutable. The name of the spoke. Spoke names must be unique. They use the
  237. // following form:
  238. // `projects/{project_number}/locations/{region}/spokes/{spoke_id}`
  239. string name = 1 [(google.api.field_behavior) = IMMUTABLE];
  240. // Output only. The time the spoke was created.
  241. google.protobuf.Timestamp create_time = 2
  242. [(google.api.field_behavior) = OUTPUT_ONLY];
  243. // Output only. The time the spoke was last updated.
  244. google.protobuf.Timestamp update_time = 3
  245. [(google.api.field_behavior) = OUTPUT_ONLY];
  246. // Optional labels in key:value format. For more information about labels, see
  247. // [Requirements for
  248. // labels](https://cloud.google.com/resource-manager/docs/creating-managing-labels#requirements).
  249. map<string, string> labels = 4;
  250. // An optional description of the spoke.
  251. string description = 5;
  252. // Immutable. The name of the hub that this spoke is attached to.
  253. string hub = 6 [
  254. (google.api.field_behavior) = IMMUTABLE,
  255. (google.api.resource_reference) = {
  256. type: "networkconnectivity.googleapis.com/Hub"
  257. }
  258. ];
  259. // VPN tunnels that are associated with the spoke.
  260. LinkedVpnTunnels linked_vpn_tunnels = 17;
  261. // VLAN attachments that are associated with the spoke.
  262. LinkedInterconnectAttachments linked_interconnect_attachments = 18;
  263. // Router appliance instances that are associated with the spoke.
  264. LinkedRouterApplianceInstances linked_router_appliance_instances = 19;
  265. // Output only. The Google-generated UUID for the spoke. This value is unique
  266. // across all spoke resources. If a spoke is deleted and another with the same
  267. // name is created, the new spoke is assigned a different unique_id.
  268. string unique_id = 11 [(google.api.field_behavior) = OUTPUT_ONLY];
  269. // Output only. The current lifecycle state of this spoke.
  270. State state = 15 [(google.api.field_behavior) = OUTPUT_ONLY];
  271. }
  272. // Request for
  273. // [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs]
  274. // method.
  275. message ListHubsRequest {
  276. // Required. The parent resource's name.
  277. string parent = 1 [
  278. (google.api.field_behavior) = REQUIRED,
  279. (google.api.resource_reference) = {
  280. type: "locations.googleapis.com/Location"
  281. }
  282. ];
  283. // The maximum number of results per page that should be returned.
  284. int32 page_size = 2;
  285. // The page token.
  286. string page_token = 3;
  287. // An expression that filters the results listed in the response.
  288. string filter = 4;
  289. // Sort the results by a certain order.
  290. string order_by = 5;
  291. }
  292. // Response for
  293. // [HubService.ListHubs][google.cloud.networkconnectivity.v1.HubService.ListHubs]
  294. // method.
  295. message ListHubsResponse {
  296. // The requested hubs.
  297. repeated Hub hubs = 1;
  298. // The next pagination token in the List response. It should be used as
  299. // page_token for the following request. An empty value means no more result.
  300. string next_page_token = 2;
  301. // Locations that could not be reached.
  302. repeated string unreachable = 3;
  303. }
  304. // Request for
  305. // [HubService.GetHub][google.cloud.networkconnectivity.v1.HubService.GetHub]
  306. // method.
  307. message GetHubRequest {
  308. // Required. The name of the hub resource to get.
  309. string name = 1 [
  310. (google.api.field_behavior) = REQUIRED,
  311. (google.api.resource_reference) = {
  312. type: "networkconnectivity.googleapis.com/Hub"
  313. }
  314. ];
  315. }
  316. // Request for
  317. // [HubService.CreateHub][google.cloud.networkconnectivity.v1.HubService.CreateHub]
  318. // method.
  319. message CreateHubRequest {
  320. // Required. The parent resource.
  321. string parent = 1 [
  322. (google.api.field_behavior) = REQUIRED,
  323. (google.api.resource_reference) = {
  324. type: "locations.googleapis.com/Location"
  325. }
  326. ];
  327. // Required. A unique identifier for the hub.
  328. string hub_id = 2 [(google.api.field_behavior) = REQUIRED];
  329. // Required. The initial values for a new hub.
  330. Hub hub = 3 [(google.api.field_behavior) = REQUIRED];
  331. // Optional. A unique request ID (optional). If you specify this ID, you can
  332. // use it in cases when you need to retry your request. When you need to
  333. // retry, this ID lets the server know that it can ignore the request if it
  334. // has already been completed. The server guarantees that for at least 60
  335. // minutes after the first request.
  336. //
  337. // For example, consider a situation where you make an initial request and
  338. // the request times out. If you make the request again with the same request
  339. // ID, the server can check to see whether the original operation
  340. // was received. If it was, the server ignores the second request. This
  341. // behavior prevents clients from mistakenly creating duplicate commitments.
  342. //
  343. // The request ID must be a valid UUID, with the exception that zero UUID is
  344. // not supported (00000000-0000-0000-0000-000000000000).
  345. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  346. }
  347. // Request for
  348. // [HubService.UpdateHub][google.cloud.networkconnectivity.v1.HubService.UpdateHub]
  349. // method.
  350. message UpdateHubRequest {
  351. // Optional. In the case of an update to an existing hub, field mask is used
  352. // to specify the fields to be overwritten. The fields specified in the
  353. // update_mask are relative to the resource, not the full request. A field is
  354. // overwritten if it is in the mask. If the user does not provide a mask, then
  355. // all fields are overwritten.
  356. google.protobuf.FieldMask update_mask = 1
  357. [(google.api.field_behavior) = OPTIONAL];
  358. // Required. The state that the hub should be in after the update.
  359. Hub hub = 2 [(google.api.field_behavior) = REQUIRED];
  360. // Optional. A unique request ID (optional). If you specify this ID, you can
  361. // use it in cases when you need to retry your request. When you need to
  362. // retry, this ID lets the server know that it can ignore the request if it
  363. // has already been completed. The server guarantees that for at least 60
  364. // minutes after the first request.
  365. //
  366. // For example, consider a situation where you make an initial request and
  367. // the request times out. If you make the request again with the same request
  368. // ID, the server can check to see whether the original operation
  369. // was received. If it was, the server ignores the second request. This
  370. // behavior prevents clients from mistakenly creating duplicate commitments.
  371. //
  372. // The request ID must be a valid UUID, with the exception that zero UUID is
  373. // not supported (00000000-0000-0000-0000-000000000000).
  374. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  375. }
  376. // The request for
  377. // [HubService.DeleteHub][google.cloud.networkconnectivity.v1.HubService.DeleteHub].
  378. message DeleteHubRequest {
  379. // Required. The name of the hub to delete.
  380. string name = 1 [
  381. (google.api.field_behavior) = REQUIRED,
  382. (google.api.resource_reference) = {
  383. type: "networkconnectivity.googleapis.com/Hub"
  384. }
  385. ];
  386. // Optional. A unique request ID (optional). If you specify this ID, you can
  387. // use it in cases when you need to retry your request. When you need to
  388. // retry, this ID lets the server know that it can ignore the request if it
  389. // has already been completed. The server guarantees that for at least 60
  390. // minutes after the first request.
  391. //
  392. // For example, consider a situation where you make an initial request and
  393. // the request times out. If you make the request again with the same request
  394. // ID, the server can check to see whether the original operation
  395. // was received. If it was, the server ignores the second request. This
  396. // behavior prevents clients from mistakenly creating duplicate commitments.
  397. //
  398. // The request ID must be a valid UUID, with the exception that zero UUID is
  399. // not supported (00000000-0000-0000-0000-000000000000).
  400. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  401. }
  402. // The request for
  403. // [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes].
  404. message ListSpokesRequest {
  405. // Required. The parent resource.
  406. string parent = 1 [
  407. (google.api.field_behavior) = REQUIRED,
  408. (google.api.resource_reference) = {
  409. type: "locations.googleapis.com/Location"
  410. }
  411. ];
  412. // The maximum number of results per page that should be returned.
  413. int32 page_size = 2;
  414. // The page token.
  415. string page_token = 3;
  416. // An expression that filters the results listed in the response.
  417. string filter = 4;
  418. // Sort the results by a certain order.
  419. string order_by = 5;
  420. }
  421. // The response for
  422. // [HubService.ListSpokes][google.cloud.networkconnectivity.v1.HubService.ListSpokes].
  423. message ListSpokesResponse {
  424. // The requested spokes.
  425. repeated Spoke spokes = 1;
  426. // The next pagination token in the List response. It should be used as
  427. // page_token for the following request. An empty value means no more result.
  428. string next_page_token = 2;
  429. // Locations that could not be reached.
  430. repeated string unreachable = 3;
  431. }
  432. // The request for
  433. // [HubService.GetSpoke][google.cloud.networkconnectivity.v1.HubService.GetSpoke].
  434. message GetSpokeRequest {
  435. // Required. The name of the spoke resource.
  436. string name = 1 [
  437. (google.api.field_behavior) = REQUIRED,
  438. (google.api.resource_reference) = {
  439. type: "networkconnectivity.googleapis.com/Spoke"
  440. }
  441. ];
  442. }
  443. // The request for
  444. // [HubService.CreateSpoke][google.cloud.networkconnectivity.v1.HubService.CreateSpoke].
  445. message CreateSpokeRequest {
  446. // Required. The parent resource.
  447. string parent = 1 [
  448. (google.api.field_behavior) = REQUIRED,
  449. (google.api.resource_reference) = {
  450. type: "locations.googleapis.com/Location"
  451. }
  452. ];
  453. // Required. Unique id for the spoke to create.
  454. string spoke_id = 2 [(google.api.field_behavior) = REQUIRED];
  455. // Required. The initial values for a new spoke.
  456. Spoke spoke = 3 [(google.api.field_behavior) = REQUIRED];
  457. // Optional. A unique request ID (optional). If you specify this ID, you can
  458. // use it in cases when you need to retry your request. When you need to
  459. // retry, this ID lets the server know that it can ignore the request if it
  460. // has already been completed. The server guarantees that for at least 60
  461. // minutes after the first request.
  462. //
  463. // For example, consider a situation where you make an initial request and
  464. // the request times out. If you make the request again with the same request
  465. // ID, the server can check to see whether the original operation
  466. // was received. If it was, the server ignores the second request. This
  467. // behavior prevents clients from mistakenly creating duplicate commitments.
  468. //
  469. // The request ID must be a valid UUID, with the exception that zero UUID is
  470. // not supported (00000000-0000-0000-0000-000000000000).
  471. string request_id = 4 [(google.api.field_behavior) = OPTIONAL];
  472. }
  473. // Request for
  474. // [HubService.UpdateSpoke][google.cloud.networkconnectivity.v1.HubService.UpdateSpoke]
  475. // method.
  476. message UpdateSpokeRequest {
  477. // Optional. In the case of an update to an existing spoke, field mask is used
  478. // to specify the fields to be overwritten. The fields specified in the
  479. // update_mask are relative to the resource, not the full request. A field is
  480. // overwritten if it is in the mask. If the user does not provide a mask, then
  481. // all fields are overwritten.
  482. google.protobuf.FieldMask update_mask = 1
  483. [(google.api.field_behavior) = OPTIONAL];
  484. // Required. The state that the spoke should be in after the update.
  485. Spoke spoke = 2 [(google.api.field_behavior) = REQUIRED];
  486. // Optional. A unique request ID (optional). If you specify this ID, you can
  487. // use it in cases when you need to retry your request. When you need to
  488. // retry, this ID lets the server know that it can ignore the request if it
  489. // has already been completed. The server guarantees that for at least 60
  490. // minutes after the first request.
  491. //
  492. // For example, consider a situation where you make an initial request and
  493. // the request times out. If you make the request again with the same request
  494. // ID, the server can check to see whether the original operation
  495. // was received. If it was, the server ignores the second request. This
  496. // behavior prevents clients from mistakenly creating duplicate commitments.
  497. //
  498. // The request ID must be a valid UUID, with the exception that zero UUID is
  499. // not supported (00000000-0000-0000-0000-000000000000).
  500. string request_id = 3 [(google.api.field_behavior) = OPTIONAL];
  501. }
  502. // The request for
  503. // [HubService.DeleteSpoke][google.cloud.networkconnectivity.v1.HubService.DeleteSpoke].
  504. message DeleteSpokeRequest {
  505. // Required. The name of the spoke to delete.
  506. string name = 1 [
  507. (google.api.field_behavior) = REQUIRED,
  508. (google.api.resource_reference) = {
  509. type: "networkconnectivity.googleapis.com/Spoke"
  510. }
  511. ];
  512. // Optional. A unique request ID (optional). If you specify this ID, you can
  513. // use it in cases when you need to retry your request. When you need to
  514. // retry, this ID lets the server know that it can ignore the request if it
  515. // has already been completed. The server guarantees that for at least 60
  516. // minutes after the first request.
  517. //
  518. // For example, consider a situation where you make an initial request and
  519. // the request times out. If you make the request again with the same request
  520. // ID, the server can check to see whether the original operation
  521. // was received. If it was, the server ignores the second request. This
  522. // behavior prevents clients from mistakenly creating duplicate commitments.
  523. //
  524. // The request ID must be a valid UUID, with the exception that zero UUID is
  525. // not supported (00000000-0000-0000-0000-000000000000).
  526. string request_id = 2 [(google.api.field_behavior) = OPTIONAL];
  527. }
  528. // A collection of Cloud VPN tunnel resources. These resources should be
  529. // redundant HA VPN tunnels that all advertise the same prefixes to Google
  530. // Cloud. Alternatively, in a passive/active configuration, all tunnels
  531. // should be capable of advertising the same prefixes.
  532. message LinkedVpnTunnels {
  533. // The URIs of linked VPN tunnel resources.
  534. repeated string uris = 1 [(google.api.resource_reference) = {
  535. type: "compute.googleapis.com/VpnTunnel"
  536. }];
  537. // A value that controls whether site-to-site data transfer is enabled for
  538. // these resources. Data transfer is available only in [supported
  539. // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations).
  540. bool site_to_site_data_transfer = 2;
  541. // Output only. The VPC network where these VPN tunnels are located.
  542. string vpc_network = 3 [
  543. (google.api.field_behavior) = OUTPUT_ONLY,
  544. (google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
  545. ];
  546. }
  547. // A collection of VLAN attachment resources. These resources should
  548. // be redundant attachments that all advertise the same prefixes to Google
  549. // Cloud. Alternatively, in active/passive configurations, all attachments
  550. // should be capable of advertising the same prefixes.
  551. message LinkedInterconnectAttachments {
  552. // The URIs of linked interconnect attachment resources
  553. repeated string uris = 1 [(google.api.resource_reference) = {
  554. type: "compute.googleapis.com/InterconnectAttachment"
  555. }];
  556. // A value that controls whether site-to-site data transfer is enabled for
  557. // these resources. Data transfer is available only in [supported
  558. // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations).
  559. bool site_to_site_data_transfer = 2;
  560. // Output only. The VPC network where these VLAN attachments are located.
  561. string vpc_network = 3 [
  562. (google.api.field_behavior) = OUTPUT_ONLY,
  563. (google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
  564. ];
  565. }
  566. // A collection of router appliance instances. If you configure multiple router
  567. // appliance instances to receive data from the same set of sites outside of
  568. // Google Cloud, we recommend that you associate those instances with the same
  569. // spoke.
  570. message LinkedRouterApplianceInstances {
  571. // The list of router appliance instances.
  572. repeated RouterApplianceInstance instances = 1;
  573. // A value that controls whether site-to-site data transfer is enabled for
  574. // these resources. Data transfer is available only in [supported
  575. // locations](https://cloud.google.com/network-connectivity/docs/network-connectivity-center/concepts/locations).
  576. bool site_to_site_data_transfer = 2;
  577. // Output only. The VPC network where these router appliance instances are
  578. // located.
  579. string vpc_network = 3 [
  580. (google.api.field_behavior) = OUTPUT_ONLY,
  581. (google.api.resource_reference) = { type: "compute.googleapis.com/Network" }
  582. ];
  583. }
  584. // A router appliance instance is a Compute Engine virtual machine (VM) instance
  585. // that acts as a BGP speaker. A router appliance instance is specified by the
  586. // URI of the VM and the internal IP address of one of the VM's network
  587. // interfaces.
  588. message RouterApplianceInstance {
  589. // The URI of the VM.
  590. string virtual_machine = 1 [(google.api.resource_reference) = {
  591. type: "compute.googleapis.com/Instance"
  592. }];
  593. // The IP address on the VM to use for peering.
  594. string ip_address = 3;
  595. }
  596. // Metadata about locations
  597. message LocationMetadata {
  598. // List of supported features
  599. repeated LocationFeature location_features = 1;
  600. }