aws_service.proto 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548
  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.gkemulticloud.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/cloud/gkemulticloud/v1/aws_resources.proto";
  21. import "google/longrunning/operations.proto";
  22. import "google/protobuf/field_mask.proto";
  23. import "google/protobuf/timestamp.proto";
  24. option csharp_namespace = "Google.Cloud.GkeMultiCloud.V1";
  25. option go_package = "google.golang.org/genproto/googleapis/cloud/gkemulticloud/v1;gkemulticloud";
  26. option java_multiple_files = true;
  27. option java_outer_classname = "AwsServiceProto";
  28. option java_package = "com.google.cloud.gkemulticloud.v1";
  29. option php_namespace = "Google\\Cloud\\GkeMultiCloud\\V1";
  30. option ruby_package = "Google::Cloud::GkeMultiCloud::V1";
  31. // The AwsClusters API provides a single centrally managed service
  32. // to create and manage Anthos clusters that run on AWS infrastructure.
  33. service AwsClusters {
  34. option (google.api.default_host) = "gkemulticloud.googleapis.com";
  35. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  36. // Creates a new [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource on a given GCP project and region.
  37. //
  38. // If successful, the response contains a newly created
  39. // [Operation][google.longrunning.Operation] resource that can be
  40. // described to track the status of the operation.
  41. rpc CreateAwsCluster(CreateAwsClusterRequest) returns (google.longrunning.Operation) {
  42. option (google.api.http) = {
  43. post: "/v1/{parent=projects/*/locations/*}/awsClusters"
  44. body: "aws_cluster"
  45. };
  46. option (google.api.method_signature) = "parent,aws_cluster,aws_cluster_id";
  47. option (google.longrunning.operation_info) = {
  48. response_type: "AwsCluster"
  49. metadata_type: "OperationMetadata"
  50. };
  51. }
  52. // Updates an [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster].
  53. rpc UpdateAwsCluster(UpdateAwsClusterRequest) returns (google.longrunning.Operation) {
  54. option (google.api.http) = {
  55. patch: "/v1/{aws_cluster.name=projects/*/locations/*/awsClusters/*}"
  56. body: "aws_cluster"
  57. };
  58. option (google.api.method_signature) = "aws_cluster,update_mask";
  59. option (google.longrunning.operation_info) = {
  60. response_type: "AwsCluster"
  61. metadata_type: "OperationMetadata"
  62. };
  63. }
  64. // Describes a specific [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource.
  65. rpc GetAwsCluster(GetAwsClusterRequest) returns (AwsCluster) {
  66. option (google.api.http) = {
  67. get: "/v1/{name=projects/*/locations/*/awsClusters/*}"
  68. };
  69. option (google.api.method_signature) = "name";
  70. }
  71. // Lists all [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources on a given Google Cloud project and
  72. // region.
  73. rpc ListAwsClusters(ListAwsClustersRequest) returns (ListAwsClustersResponse) {
  74. option (google.api.http) = {
  75. get: "/v1/{parent=projects/*/locations/*}/awsClusters"
  76. };
  77. option (google.api.method_signature) = "parent";
  78. }
  79. // Deletes a specific [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource.
  80. //
  81. // Fails if the cluster has one or more associated [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]
  82. // resources.
  83. //
  84. // If successful, the response contains a newly created
  85. // [Operation][google.longrunning.Operation] resource that can be
  86. // described to track the status of the operation.
  87. rpc DeleteAwsCluster(DeleteAwsClusterRequest) returns (google.longrunning.Operation) {
  88. option (google.api.http) = {
  89. delete: "/v1/{name=projects/*/locations/*/awsClusters/*}"
  90. };
  91. option (google.api.method_signature) = "name";
  92. option (google.longrunning.operation_info) = {
  93. response_type: "google.protobuf.Empty"
  94. metadata_type: "OperationMetadata"
  95. };
  96. }
  97. // Generates a short-lived access token to authenticate to a given
  98. // [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource.
  99. rpc GenerateAwsAccessToken(GenerateAwsAccessTokenRequest) returns (GenerateAwsAccessTokenResponse) {
  100. option (google.api.http) = {
  101. get: "/v1/{aws_cluster=projects/*/locations/*/awsClusters/*}:generateAwsAccessToken"
  102. };
  103. }
  104. // Creates a new [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool], attached to a given [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster].
  105. //
  106. // If successful, the response contains a newly created
  107. // [Operation][google.longrunning.Operation] resource that can be
  108. // described to track the status of the operation.
  109. rpc CreateAwsNodePool(CreateAwsNodePoolRequest) returns (google.longrunning.Operation) {
  110. option (google.api.http) = {
  111. post: "/v1/{parent=projects/*/locations/*/awsClusters/*}/awsNodePools"
  112. body: "aws_node_pool"
  113. };
  114. option (google.api.method_signature) = "parent,aws_node_pool,aws_node_pool_id";
  115. option (google.longrunning.operation_info) = {
  116. response_type: "AwsNodePool"
  117. metadata_type: "OperationMetadata"
  118. };
  119. }
  120. // Updates an [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool].
  121. rpc UpdateAwsNodePool(UpdateAwsNodePoolRequest) returns (google.longrunning.Operation) {
  122. option (google.api.http) = {
  123. patch: "/v1/{aws_node_pool.name=projects/*/locations/*/awsClusters/*/awsNodePools/*}"
  124. body: "aws_node_pool"
  125. };
  126. option (google.api.method_signature) = "aws_node_pool,update_mask";
  127. option (google.longrunning.operation_info) = {
  128. response_type: "AwsNodePool"
  129. metadata_type: "OperationMetadata"
  130. };
  131. }
  132. // Describes a specific [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource.
  133. rpc GetAwsNodePool(GetAwsNodePoolRequest) returns (AwsNodePool) {
  134. option (google.api.http) = {
  135. get: "/v1/{name=projects/*/locations/*/awsClusters/*/awsNodePools/*}"
  136. };
  137. option (google.api.method_signature) = "name";
  138. }
  139. // Lists all [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resources on a given [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster].
  140. rpc ListAwsNodePools(ListAwsNodePoolsRequest) returns (ListAwsNodePoolsResponse) {
  141. option (google.api.http) = {
  142. get: "/v1/{parent=projects/*/locations/*/awsClusters/*}/awsNodePools"
  143. };
  144. option (google.api.method_signature) = "parent";
  145. }
  146. // Deletes a specific [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource.
  147. //
  148. // If successful, the response contains a newly created
  149. // [Operation][google.longrunning.Operation] resource that can be
  150. // described to track the status of the operation.
  151. rpc DeleteAwsNodePool(DeleteAwsNodePoolRequest) returns (google.longrunning.Operation) {
  152. option (google.api.http) = {
  153. delete: "/v1/{name=projects/*/locations/*/awsClusters/*/awsNodePools/*}"
  154. };
  155. option (google.api.method_signature) = "name";
  156. option (google.longrunning.operation_info) = {
  157. response_type: "google.protobuf.Empty"
  158. metadata_type: "OperationMetadata"
  159. };
  160. }
  161. // Returns information, such as supported AWS regions and Kubernetes
  162. // versions, on a given Google Cloud location.
  163. rpc GetAwsServerConfig(GetAwsServerConfigRequest) returns (AwsServerConfig) {
  164. option (google.api.http) = {
  165. get: "/v1/{name=projects/*/locations/*/awsServerConfig}"
  166. };
  167. option (google.api.method_signature) = "name";
  168. }
  169. }
  170. // Request message for `AwsClusters.CreateAwsCluster` method.
  171. message CreateAwsClusterRequest {
  172. // Required. The parent location where this [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource
  173. // will be created.
  174. //
  175. // Location names are formatted as `projects/<project-id>/locations/<region>`.
  176. //
  177. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  178. // for more details on Google Cloud resource names.
  179. string parent = 1 [
  180. (google.api.field_behavior) = REQUIRED,
  181. (google.api.resource_reference) = {
  182. child_type: "gkemulticloud.googleapis.com/AwsCluster"
  183. }
  184. ];
  185. // Required. The specification of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] to create.
  186. AwsCluster aws_cluster = 2 [(google.api.field_behavior) = REQUIRED];
  187. // Required. A client provided ID the resource. Must be unique within the parent
  188. // resource.
  189. //
  190. // The provided ID will be part of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]
  191. // resource name formatted as
  192. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
  193. //
  194. // Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 40 characters.
  195. string aws_cluster_id = 3 [(google.api.field_behavior) = REQUIRED];
  196. // If set, only validate the request, but do not actually create the cluster.
  197. bool validate_only = 4;
  198. }
  199. // Request message for `AwsClusters.UpdateAwsCluster` method.
  200. message UpdateAwsClusterRequest {
  201. // Required. The [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource to update.
  202. AwsCluster aws_cluster = 1 [(google.api.field_behavior) = REQUIRED];
  203. // If set, only validate the request, but do not actually update the cluster.
  204. bool validate_only = 2;
  205. // Required. Mask of fields to update. At least one path must be supplied in
  206. // this field. The elements of the repeated paths field can only include these
  207. // fields from [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster]:
  208. //
  209. // * `description`.
  210. // * `annotations`.
  211. // * `control_plane.version`.
  212. // * `authorization.admin_users`.
  213. // * `control_plane.aws_services_authentication.role_arn`.
  214. // * `control_plane.aws_services_authentication.role_session_name`.
  215. // * `control_plane.config_encryption.kms_key_arn`.
  216. // * `control_plane.instance_type`.
  217. // * `control_plane.security_group_ids`.
  218. // * `control_plane.proxy_config`.
  219. // * `control_plane.proxy_config.secret_arn`.
  220. // * `control_plane.proxy_config.secret_version`.
  221. // * `control_plane.root_volume.iops`.
  222. // * `control_plane.root_volume.kms_key_arn`.
  223. // * `control_plane.root_volume.volume_type`.
  224. // * `control_plane.root_volume.size_gib`.
  225. // * `control_plane.ssh_config`.
  226. // * `control_plane.ssh_config.ec2_key_pair`.
  227. // * `control_plane.instance_placement.tenancy`.
  228. // * `logging_config`.
  229. google.protobuf.FieldMask update_mask = 4 [(google.api.field_behavior) = REQUIRED];
  230. }
  231. // Request message for `AwsClusters.GetAwsCluster` method.
  232. message GetAwsClusterRequest {
  233. // Required. The name of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource to describe.
  234. //
  235. // `AwsCluster` names are formatted as
  236. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
  237. //
  238. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  239. // for more details on GCP resource names.
  240. string name = 1 [
  241. (google.api.field_behavior) = REQUIRED,
  242. (google.api.resource_reference) = {
  243. type: "gkemulticloud.googleapis.com/AwsCluster"
  244. }
  245. ];
  246. }
  247. // Request message for `AwsClusters.ListAwsClusters` method.
  248. message ListAwsClustersRequest {
  249. // Required. The parent location which owns this collection of
  250. // [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources.
  251. //
  252. // Location names are formatted as `projects/<project-id>/locations/<region>`.
  253. //
  254. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  255. // for more details on GCP resource names.
  256. string parent = 1 [
  257. (google.api.field_behavior) = REQUIRED,
  258. (google.api.resource_reference) = {
  259. child_type: "gkemulticloud.googleapis.com/AwsCluster"
  260. }
  261. ];
  262. // The maximum number of items to return.
  263. //
  264. // If not specified, a default value of 50 will be used by the service.
  265. // Regardless of the pageSize value, the response can include a partial list
  266. // and a caller should only rely on response's
  267. // [nextPageToken][google.cloud.gkemulticloud.v1.ListAwsClustersResponse.next_page_token] to determine if
  268. // there are more instances left to be queried.
  269. int32 page_size = 2;
  270. // The `nextPageToken` value returned from a previous
  271. // [awsClusters.list][google.cloud.gkemulticloud.v1.AwsClusters.ListAwsClusters] request, if any.
  272. string page_token = 3;
  273. }
  274. // Response message for `AwsClusters.ListAwsClusters` method.
  275. message ListAwsClustersResponse {
  276. // A list of [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resources in the specified GCP
  277. // project and region region.
  278. repeated AwsCluster aws_clusters = 1;
  279. // Token to retrieve the next page of results, or empty if there are no more
  280. // results in the list.
  281. string next_page_token = 2;
  282. }
  283. // Request message for `AwsClusters.DeleteAwsCluster` method.
  284. message DeleteAwsClusterRequest {
  285. // Required. The resource name the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] to delete.
  286. //
  287. // `AwsCluster` names are formatted as
  288. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
  289. //
  290. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  291. // for more details on GCP resource names.
  292. string name = 1 [
  293. (google.api.field_behavior) = REQUIRED,
  294. (google.api.resource_reference) = {
  295. type: "gkemulticloud.googleapis.com/AwsCluster"
  296. }
  297. ];
  298. // If set, only validate the request, but do not actually delete the resource.
  299. bool validate_only = 2;
  300. // If set to true, and the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource is not found,
  301. // the request will succeed but no action will be taken on the server and a
  302. // completed [Operation][google.longrunning.Operation] will be returned.
  303. //
  304. // Useful for idempotent deletion.
  305. bool allow_missing = 3;
  306. // The current etag of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster].
  307. //
  308. // Allows clients to perform deletions through optimistic concurrency control.
  309. //
  310. // If the provided etag does not match the current etag of the cluster,
  311. // the request will fail and an ABORTED error will be returned.
  312. string etag = 4;
  313. }
  314. // Response message for `AwsClusters.CreateAwsNodePool` method.
  315. message CreateAwsNodePoolRequest {
  316. // Required. The [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource where this node pool will be created.
  317. //
  318. // `AwsCluster` names are formatted as
  319. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
  320. //
  321. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  322. // for more details on Google Cloud resource names.
  323. string parent = 1 [
  324. (google.api.field_behavior) = REQUIRED,
  325. (google.api.resource_reference) = {
  326. child_type: "gkemulticloud.googleapis.com/AwsNodePool"
  327. }
  328. ];
  329. // Required. The specification of the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] to create.
  330. AwsNodePool aws_node_pool = 2 [(google.api.field_behavior) = REQUIRED];
  331. // Required. A client provided ID the resource. Must be unique within the parent
  332. // resource.
  333. //
  334. // The provided ID will be part of the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]
  335. // resource name formatted as
  336. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
  337. //
  338. // Valid characters are `/[a-z][0-9]-/`. Cannot be longer than 40 characters.
  339. string aws_node_pool_id = 3 [(google.api.field_behavior) = REQUIRED];
  340. // If set, only validate the request, but do not actually create the node
  341. // pool.
  342. bool validate_only = 4;
  343. }
  344. // Request message for `AwsClusters.UpdateAwsNodePool` method.
  345. message UpdateAwsNodePoolRequest {
  346. // Required. The [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource to update.
  347. AwsNodePool aws_node_pool = 1 [(google.api.field_behavior) = REQUIRED];
  348. // If set, only validate the request, but don't actually update the node pool.
  349. bool validate_only = 2;
  350. // Required. Mask of fields to update. At least one path must be supplied in
  351. // this field. The elements of the repeated paths field can only include these
  352. // fields from [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool]:
  353. //
  354. // * `annotations`.
  355. // * `version`.
  356. // * `autoscaling.min_node_count`.
  357. // * `autoscaling.max_node_count`.
  358. // * `config.config_encryption.kms_key_arn`.
  359. // * `config.security_group_ids`.
  360. // * `config.root_volume.iops`.
  361. // * `config.root_volume.kms_key_arn`.
  362. // * `config.root_volume.volume_type`.
  363. // * `config.root_volume.size_gib`.
  364. // * `config.proxy_config`.
  365. // * `config.proxy_config.secret_arn`.
  366. // * `config.proxy_config.secret_version`.
  367. // * `config.ssh_config`.
  368. // * `config.ssh_config.ec2_key_pair`.
  369. google.protobuf.FieldMask update_mask = 3 [(google.api.field_behavior) = REQUIRED];
  370. }
  371. // Request message for `AwsClusters.GetAwsNodePool` method.
  372. message GetAwsNodePoolRequest {
  373. // Required. The name of the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource to describe.
  374. //
  375. // `AwsNodePool` names are formatted as
  376. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
  377. //
  378. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  379. // for more details on Google Cloud resource names.
  380. string name = 1 [
  381. (google.api.field_behavior) = REQUIRED,
  382. (google.api.resource_reference) = {
  383. type: "gkemulticloud.googleapis.com/AwsNodePool"
  384. }
  385. ];
  386. }
  387. // Request message for `AwsClusters.ListAwsNodePools` method.
  388. message ListAwsNodePoolsRequest {
  389. // Required. The parent `AwsCluster` which owns this collection of
  390. // [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resources.
  391. //
  392. // `AwsCluster` names are formatted as
  393. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
  394. //
  395. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  396. // for more details on Google Cloud resource names.
  397. string parent = 1 [
  398. (google.api.field_behavior) = REQUIRED,
  399. (google.api.resource_reference) = {
  400. child_type: "gkemulticloud.googleapis.com/AwsNodePool"
  401. }
  402. ];
  403. // The maximum number of items to return.
  404. //
  405. // If not specified, a default value of 50 will be used by the service.
  406. // Regardless of the pageSize value, the response can include a partial list
  407. // and a caller should only rely on response's
  408. // [nextPageToken][google.cloud.gkemulticloud.v1.ListAwsNodePoolsResponse.next_page_token] to determine if
  409. // there are more instances left to be queried.
  410. int32 page_size = 2;
  411. // The `nextPageToken` value returned from a previous
  412. // [awsNodePools.list][google.cloud.gkemulticloud.v1.AwsClusters.ListAwsNodePools] request, if any.
  413. string page_token = 3;
  414. }
  415. // Response message for `AwsClusters.ListAwsNodePools` method.
  416. message ListAwsNodePoolsResponse {
  417. // A list of [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resources in the specified `AwsCluster`.
  418. repeated AwsNodePool aws_node_pools = 1;
  419. // Token to retrieve the next page of results, or empty if there are no more
  420. // results in the list.
  421. string next_page_token = 2;
  422. }
  423. // Request message for `AwsClusters.DeleteNodePool` method.
  424. message DeleteAwsNodePoolRequest {
  425. // Required. The resource name the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] to delete.
  426. //
  427. // `AwsNodePool` names are formatted as
  428. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>/awsNodePools/<node-pool-id>`.
  429. //
  430. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  431. // for more details on Google Cloud resource names.
  432. string name = 1 [
  433. (google.api.field_behavior) = REQUIRED,
  434. (google.api.resource_reference) = {
  435. type: "gkemulticloud.googleapis.com/AwsNodePool"
  436. }
  437. ];
  438. // If set, only validate the request, but do not actually delete the node
  439. // pool.
  440. bool validate_only = 2;
  441. // If set to true, and the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool] resource is not found,
  442. // the request will succeed but no action will be taken on the server and a
  443. // completed [Operation][google.longrunning.Operation] will be returned.
  444. //
  445. // Useful for idempotent deletion.
  446. bool allow_missing = 3;
  447. // The current ETag of the [AwsNodePool][google.cloud.gkemulticloud.v1.AwsNodePool].
  448. //
  449. // Allows clients to perform deletions through optimistic concurrency control.
  450. //
  451. // If the provided ETag does not match the current etag of the node pool,
  452. // the request will fail and an ABORTED error will be returned.
  453. string etag = 4;
  454. }
  455. // GetAwsServerConfigRequest gets the server config of GKE cluster on AWS.
  456. message GetAwsServerConfigRequest {
  457. // Required. The name of the [AwsServerConfig][google.cloud.gkemulticloud.v1.AwsServerConfig] resource to describe.
  458. //
  459. // `AwsServerConfig` names are formatted as
  460. // `projects/<project-id>/locations/<region>/awsServerConfig`.
  461. //
  462. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  463. // for more details on Google Cloud resource names.
  464. string name = 1 [
  465. (google.api.field_behavior) = REQUIRED,
  466. (google.api.resource_reference) = {
  467. type: "gkemulticloud.googleapis.com/AwsServerConfig"
  468. }
  469. ];
  470. }
  471. // Request message for `AwsClusters.GenerateAwsAccessToken` method.
  472. message GenerateAwsAccessTokenRequest {
  473. // Required. The name of the [AwsCluster][google.cloud.gkemulticloud.v1.AwsCluster] resource to authenticate to.
  474. //
  475. // `AwsCluster` names are formatted as
  476. // `projects/<project-id>/locations/<region>/awsClusters/<cluster-id>`.
  477. //
  478. // See [Resource Names](https://cloud.google.com/apis/design/resource_names)
  479. // for more details on Google Cloud resource names.
  480. string aws_cluster = 1 [
  481. (google.api.field_behavior) = REQUIRED,
  482. (google.api.resource_reference) = {
  483. type: "gkemulticloud.googleapis.com/AwsCluster"
  484. }
  485. ];
  486. }
  487. // Response message for `AwsClusters.GenerateAwsAccessToken` method.
  488. message GenerateAwsAccessTokenResponse {
  489. // Output only. Access token to authenticate to k8s api-server.
  490. string access_token = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  491. // Output only. Timestamp at which the token will expire.
  492. google.protobuf.Timestamp expiration_time = 2 [(google.api.field_behavior) = OUTPUT_ONLY];
  493. }