workload_identity_pool.proto 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640
  1. // Copyright 2020 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.iam.v1beta;
  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. option go_package = "google.golang.org/genproto/googleapis/iam/v1beta;iam";
  23. option java_multiple_files = true;
  24. option java_outer_classname = "WorkloadIdentityPoolProto";
  25. option java_package = "com.google.iam.v1beta";
  26. // Manages WorkloadIdentityPools.
  27. service WorkloadIdentityPools {
  28. option (google.api.default_host) = "iam.googleapis.com";
  29. option (google.api.oauth_scopes) = "https://www.googleapis.com/auth/cloud-platform";
  30. // Lists all non-deleted
  31. // [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool]s in a
  32. // project. If `show_deleted` is set to `true`, then deleted pools are also
  33. // listed.
  34. rpc ListWorkloadIdentityPools(ListWorkloadIdentityPoolsRequest) returns (ListWorkloadIdentityPoolsResponse) {
  35. option (google.api.http) = {
  36. get: "/v1beta/{parent=projects/*/locations/*}/workloadIdentityPools"
  37. };
  38. option (google.api.method_signature) = "parent";
  39. }
  40. // Gets an individual
  41. // [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
  42. rpc GetWorkloadIdentityPool(GetWorkloadIdentityPoolRequest) returns (WorkloadIdentityPool) {
  43. option (google.api.http) = {
  44. get: "/v1beta/{name=projects/*/locations/*/workloadIdentityPools/*}"
  45. };
  46. option (google.api.method_signature) = "name";
  47. }
  48. // Creates a new
  49. // [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
  50. //
  51. // You cannot reuse the name of a deleted pool until 30 days after deletion.
  52. rpc CreateWorkloadIdentityPool(CreateWorkloadIdentityPoolRequest) returns (google.longrunning.Operation) {
  53. option (google.api.http) = {
  54. post: "/v1beta/{parent=projects/*/locations/*}/workloadIdentityPools"
  55. body: "workload_identity_pool"
  56. };
  57. option (google.api.method_signature) = "parent,workload_identity_pool,workload_identity_pool_id";
  58. option (google.longrunning.operation_info) = {
  59. response_type: "WorkloadIdentityPool"
  60. metadata_type: "WorkloadIdentityPoolOperationMetadata"
  61. };
  62. }
  63. // Updates an existing
  64. // [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
  65. rpc UpdateWorkloadIdentityPool(UpdateWorkloadIdentityPoolRequest) returns (google.longrunning.Operation) {
  66. option (google.api.http) = {
  67. patch: "/v1beta/{workload_identity_pool.name=projects/*/locations/*/workloadIdentityPools/*}"
  68. body: "workload_identity_pool"
  69. };
  70. option (google.api.method_signature) = "workload_identity_pool,update_mask";
  71. option (google.longrunning.operation_info) = {
  72. response_type: "WorkloadIdentityPool"
  73. metadata_type: "WorkloadIdentityPoolOperationMetadata"
  74. };
  75. }
  76. // Deletes a
  77. // [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
  78. //
  79. // You cannot use a deleted pool to exchange external
  80. // credentials for Google Cloud credentials. However, deletion does
  81. // not revoke credentials that have already been issued.
  82. // Credentials issued for a deleted pool do not grant access to resources.
  83. // If the pool is undeleted, and the credentials are not expired, they
  84. // grant access again.
  85. // You can undelete a pool for 30 days. After 30 days, deletion is
  86. // permanent.
  87. // You cannot update deleted pools. However, you can view and list them.
  88. rpc DeleteWorkloadIdentityPool(DeleteWorkloadIdentityPoolRequest) returns (google.longrunning.Operation) {
  89. option (google.api.http) = {
  90. delete: "/v1beta/{name=projects/*/locations/*/workloadIdentityPools/*}"
  91. };
  92. option (google.api.method_signature) = "name";
  93. option (google.longrunning.operation_info) = {
  94. response_type: "WorkloadIdentityPool"
  95. metadata_type: "WorkloadIdentityPoolOperationMetadata"
  96. };
  97. }
  98. // Undeletes a [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool],
  99. // as long as it was deleted fewer than 30 days ago.
  100. rpc UndeleteWorkloadIdentityPool(UndeleteWorkloadIdentityPoolRequest) returns (google.longrunning.Operation) {
  101. option (google.api.http) = {
  102. post: "/v1beta/{name=projects/*/locations/*/workloadIdentityPools/*}:undelete"
  103. body: "*"
  104. };
  105. option (google.api.method_signature) = "name";
  106. option (google.longrunning.operation_info) = {
  107. response_type: "WorkloadIdentityPool"
  108. metadata_type: "WorkloadIdentityPoolOperationMetadata"
  109. };
  110. }
  111. // Lists all non-deleted
  112. // [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityPoolProvider]s
  113. // in a [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
  114. // If `show_deleted` is set to `true`, then deleted providers are also listed.
  115. rpc ListWorkloadIdentityPoolProviders(ListWorkloadIdentityPoolProvidersRequest) returns (ListWorkloadIdentityPoolProvidersResponse) {
  116. option (google.api.http) = {
  117. get: "/v1beta/{parent=projects/*/locations/*/workloadIdentityPools/*}/providers"
  118. };
  119. option (google.api.method_signature) = "parent";
  120. }
  121. // Gets an individual
  122. // [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityPoolProvider].
  123. rpc GetWorkloadIdentityPoolProvider(GetWorkloadIdentityPoolProviderRequest) returns (WorkloadIdentityPoolProvider) {
  124. option (google.api.http) = {
  125. get: "/v1beta/{name=projects/*/locations/*/workloadIdentityPools/*/providers/*}"
  126. };
  127. option (google.api.method_signature) = "name";
  128. }
  129. // Creates a new
  130. // [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityProvider]
  131. // in a [WorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPool].
  132. //
  133. // You cannot reuse the name of a deleted provider until 30 days after
  134. // deletion.
  135. rpc CreateWorkloadIdentityPoolProvider(CreateWorkloadIdentityPoolProviderRequest) returns (google.longrunning.Operation) {
  136. option (google.api.http) = {
  137. post: "/v1beta/{parent=projects/*/locations/*/workloadIdentityPools/*}/providers"
  138. body: "workload_identity_pool_provider"
  139. };
  140. option (google.api.method_signature) = "parent,workload_identity_pool_provider,workload_identity_pool_provider_id";
  141. option (google.longrunning.operation_info) = {
  142. response_type: "WorkloadIdentityPoolProvider"
  143. metadata_type: "WorkloadIdentityPoolProviderOperationMetadata"
  144. };
  145. }
  146. // Updates an existing
  147. // [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityProvider].
  148. rpc UpdateWorkloadIdentityPoolProvider(UpdateWorkloadIdentityPoolProviderRequest) returns (google.longrunning.Operation) {
  149. option (google.api.http) = {
  150. patch: "/v1beta/{workload_identity_pool_provider.name=projects/*/locations/*/workloadIdentityPools/*/providers/*}"
  151. body: "workload_identity_pool_provider"
  152. };
  153. option (google.api.method_signature) = "workload_identity_pool_provider,update_mask";
  154. option (google.longrunning.operation_info) = {
  155. response_type: "WorkloadIdentityPoolProvider"
  156. metadata_type: "WorkloadIdentityPoolProviderOperationMetadata"
  157. };
  158. }
  159. // Deletes a
  160. // [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityProvider].
  161. // Deleting a provider does not revoke credentials that have already been
  162. // issued; they continue to grant access.
  163. // You can undelete a provider for 30 days. After 30 days, deletion is
  164. // permanent.
  165. // You cannot update deleted providers. However, you can view and list them.
  166. rpc DeleteWorkloadIdentityPoolProvider(DeleteWorkloadIdentityPoolProviderRequest) returns (google.longrunning.Operation) {
  167. option (google.api.http) = {
  168. delete: "/v1beta/{name=projects/*/locations/*/workloadIdentityPools/*/providers/*}"
  169. };
  170. option (google.api.method_signature) = "name";
  171. option (google.longrunning.operation_info) = {
  172. response_type: "WorkloadIdentityPoolProvider"
  173. metadata_type: "WorkloadIdentityPoolProviderOperationMetadata"
  174. };
  175. }
  176. // Undeletes a
  177. // [WorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityProvider],
  178. // as long as it was deleted fewer than 30 days ago.
  179. rpc UndeleteWorkloadIdentityPoolProvider(UndeleteWorkloadIdentityPoolProviderRequest) returns (google.longrunning.Operation) {
  180. option (google.api.http) = {
  181. post: "/v1beta/{name=projects/*/locations/*/workloadIdentityPools/*/providers/*}:undelete"
  182. body: "*"
  183. };
  184. option (google.api.method_signature) = "name";
  185. option (google.longrunning.operation_info) = {
  186. response_type: "WorkloadIdentityPoolProvider"
  187. metadata_type: "WorkloadIdentityPoolProviderOperationMetadata"
  188. };
  189. }
  190. }
  191. // Represents a collection of external workload identities. You can define IAM
  192. // policies to grant these identities access to Google Cloud resources.
  193. message WorkloadIdentityPool {
  194. option (google.api.resource) = {
  195. type: "iam.googleapis.com/WorkloadIdentityPool"
  196. pattern: "projects/{project}/locations/{location}/workloadIdentityPools/{workload_identity_pool}"
  197. };
  198. // The current state of the pool.
  199. enum State {
  200. // State unspecified.
  201. STATE_UNSPECIFIED = 0;
  202. // The pool is active, and may be used in Google Cloud policies.
  203. ACTIVE = 1;
  204. // The pool is soft-deleted. Soft-deleted pools are permanently deleted
  205. // after approximately 30 days. You can restore a soft-deleted pool using
  206. // [UndeleteWorkloadIdentityPool][google.iam.v1beta.WorkloadIdentityPools.UndeleteWorkloadIdentityPool].
  207. //
  208. // You cannot reuse the ID of a soft-deleted pool until it is permanently
  209. // deleted.
  210. //
  211. // While a pool is deleted, you cannot use it to exchange tokens, or use
  212. // existing tokens to access resources. If the pool is undeleted, existing
  213. // tokens grant access again.
  214. DELETED = 2;
  215. }
  216. // Output only. The resource name of the pool.
  217. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  218. // A display name for the pool. Cannot exceed 32 characters.
  219. string display_name = 2;
  220. // A description of the pool. Cannot exceed 256 characters.
  221. string description = 3;
  222. // Output only. The state of the pool.
  223. State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  224. // Whether the pool is disabled. You cannot use a disabled pool to exchange
  225. // tokens, or use existing tokens to access resources. If
  226. // the pool is re-enabled, existing tokens grant access again.
  227. bool disabled = 5;
  228. }
  229. // A configuration for an external identity provider.
  230. message WorkloadIdentityPoolProvider {
  231. option (google.api.resource) = {
  232. type: "iam.googleapis.com/WorkloadIdentityPoolProvider"
  233. pattern: "projects/{project}/locations/{location}/workloadIdentityPools/{workload_identity_pool}/providers/{workload_identity_pool_provider}"
  234. };
  235. // Represents an Amazon Web Services identity provider.
  236. message Aws {
  237. // Required. The AWS account ID.
  238. string account_id = 1 [(google.api.field_behavior) = REQUIRED];
  239. }
  240. // Represents an OpenId Connect 1.0 identity provider.
  241. message Oidc {
  242. // Required. The OIDC issuer URL.
  243. string issuer_uri = 1 [(google.api.field_behavior) = REQUIRED];
  244. // Acceptable values for the `aud` field (audience) in the OIDC token. Token
  245. // exchange requests are rejected if the token audience does not match one
  246. // of the configured values. Each audience may be at most 256 characters. A
  247. // maximum of 10 audiences may be configured.
  248. //
  249. // If this list is empty, the OIDC token audience must be equal to
  250. // the full canonical resource name of the WorkloadIdentityPoolProvider,
  251. // with or without the HTTPS prefix. For example:
  252. //
  253. // ```
  254. // //iam.googleapis.com/projects/<project-number>/locations/<location>/workloadIdentityPools/<pool-id>/providers/<provider-id>
  255. // https://iam.googleapis.com/projects/<project-number>/locations/<location>/workloadIdentityPools/<pool-id>/providers/<provider-id>
  256. // ```
  257. repeated string allowed_audiences = 2;
  258. }
  259. // The current state of the provider.
  260. enum State {
  261. // State unspecified.
  262. STATE_UNSPECIFIED = 0;
  263. // The provider is active, and may be used to validate authentication
  264. // credentials.
  265. ACTIVE = 1;
  266. // The provider is soft-deleted. Soft-deleted providers are permanently
  267. // deleted after approximately 30 days. You can restore a soft-deleted
  268. // provider using
  269. // [UndeleteWorkloadIdentityPoolProvider][google.iam.v1beta.WorkloadIdentityPools.UndeleteWorkloadIdentityPoolProvider].
  270. //
  271. // You cannot reuse the ID of a soft-deleted provider until it is
  272. // permanently deleted.
  273. DELETED = 2;
  274. }
  275. // Output only. The resource name of the provider.
  276. string name = 1 [(google.api.field_behavior) = OUTPUT_ONLY];
  277. // A display name for the provider. Cannot exceed 32 characters.
  278. string display_name = 2;
  279. // A description for the provider. Cannot exceed 256 characters.
  280. string description = 3;
  281. // Output only. The state of the provider.
  282. State state = 4 [(google.api.field_behavior) = OUTPUT_ONLY];
  283. // Whether the provider is disabled. You cannot use a disabled provider to
  284. // exchange tokens. However, existing tokens still grant access.
  285. bool disabled = 5;
  286. // Maps attributes from authentication credentials issued by an external
  287. // identity provider to Google Cloud attributes, such as `subject` and
  288. // `segment`.
  289. //
  290. // Each key must be a string specifying the Google Cloud IAM attribute to
  291. // map to.
  292. //
  293. // The following keys are supported:
  294. //
  295. // * `google.subject`: The principal IAM is authenticating. You can reference
  296. // this value in IAM bindings. This is also the
  297. // subject that appears in Cloud Logging logs.
  298. // Cannot exceed 127 characters.
  299. //
  300. // * `google.groups`: Groups the external identity belongs to. You can grant
  301. // groups access to resources using an IAM `principalSet`
  302. // binding; access applies to all members of the group.
  303. //
  304. // You can also provide custom attributes by specifying
  305. // `attribute.{custom_attribute}`, where `{custom_attribute}` is the name of
  306. // the custom attribute to be mapped. You can define a maximum of 50 custom
  307. // attributes. The maximum length of a mapped attribute key is
  308. // 100 characters, and the key may only contain the characters [a-z0-9_].
  309. //
  310. // You can reference these attributes in IAM policies to define fine-grained
  311. // access for a workload to Google Cloud resources. For example:
  312. //
  313. // * `google.subject`:
  314. // `principal://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/subject/{value}`
  315. //
  316. // * `google.groups`:
  317. // `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/group/{value}`
  318. //
  319. // * `attribute.{custom_attribute}`:
  320. // `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/attribute.{custom_attribute}/{value}`
  321. //
  322. // Each value must be a [Common Expression Language]
  323. // (https://opensource.google/projects/cel) function that maps an
  324. // identity provider credential to the normalized attribute specified by the
  325. // corresponding map key.
  326. //
  327. // You can use the `assertion` keyword in the expression to access a JSON
  328. // representation of the authentication credential issued by the provider.
  329. //
  330. // The maximum length of an attribute mapping expression is 2048 characters.
  331. // When evaluated, the total size of all mapped attributes must not exceed
  332. // 8KB.
  333. //
  334. // For AWS providers, the following rules apply:
  335. //
  336. // - If no attribute mapping is defined, the following default mapping
  337. // applies:
  338. //
  339. // ```
  340. // {
  341. // "google.subject":"assertion.arn",
  342. // "attribute.aws_role":
  343. // "assertion.arn.contains('assumed-role')"
  344. // " ? assertion.arn.extract('{account_arn}assumed-role/')"
  345. // " + 'assumed-role/'"
  346. // " + assertion.arn.extract('assumed-role/{role_name}/')"
  347. // " : assertion.arn",
  348. // }
  349. // ```
  350. //
  351. // - If any custom attribute mappings are defined, they must include a mapping
  352. // to the `google.subject` attribute.
  353. //
  354. //
  355. // For OIDC providers, the following rules apply:
  356. //
  357. // - Custom attribute mappings must be defined, and must include a mapping to
  358. // the `google.subject` attribute. For example, the following maps the
  359. // `sub` claim of the incoming credential to the `subject` attribute on
  360. // a Google token.
  361. //
  362. // ```
  363. // {"google.subject": "assertion.sub"}
  364. // ```
  365. map<string, string> attribute_mapping = 6;
  366. // [A Common Expression Language](https://opensource.google/projects/cel)
  367. // expression, in plain text, to restrict what otherwise valid authentication
  368. // credentials issued by the provider should not be accepted.
  369. //
  370. // The expression must output a boolean representing whether to allow the
  371. // federation.
  372. //
  373. // The following keywords may be referenced in the expressions:
  374. //
  375. // * `assertion`: JSON representing the authentication credential issued by
  376. // the provider.
  377. // * `google`: The Google attributes mapped from the assertion in the
  378. // `attribute_mappings`.
  379. // * `attribute`: The custom attributes mapped from the assertion in the
  380. // `attribute_mappings`.
  381. //
  382. // The maximum length of the attribute condition expression is 4096
  383. // characters. If unspecified, all valid authentication credential are
  384. // accepted.
  385. //
  386. // The following example shows how to only allow credentials with a mapped
  387. // `google.groups` value of `admins`:
  388. //
  389. // ```
  390. // "'admins' in google.groups"
  391. // ```
  392. string attribute_condition = 7;
  393. // Identity provider configuration types.
  394. oneof provider_config {
  395. // An Amazon Web Services identity provider.
  396. Aws aws = 8;
  397. // An OpenId Connect 1.0 identity provider.
  398. Oidc oidc = 9;
  399. }
  400. }
  401. // Request message for ListWorkloadIdentityPools.
  402. message ListWorkloadIdentityPoolsRequest {
  403. // Required. The parent resource to list pools for.
  404. string parent = 1 [
  405. (google.api.field_behavior) = REQUIRED,
  406. (google.api.resource_reference) = {
  407. type: "cloudresourcemanager.googleapis.com/Project"
  408. }
  409. ];
  410. // The maximum number of pools to return.
  411. // If unspecified, at most 50 pools are returned.
  412. // The maximum value is 1000; values above are 1000 truncated to 1000.
  413. int32 page_size = 2;
  414. // A page token, received from a previous `ListWorkloadIdentityPools`
  415. // call. Provide this to retrieve the subsequent page.
  416. string page_token = 3;
  417. // Whether to return soft-deleted pools.
  418. bool show_deleted = 4;
  419. }
  420. // Response message for ListWorkloadIdentityPools.
  421. message ListWorkloadIdentityPoolsResponse {
  422. // A list of pools.
  423. repeated WorkloadIdentityPool workload_identity_pools = 1;
  424. // A token, which can be sent as `page_token` to retrieve the next page.
  425. // If this field is omitted, there are no subsequent pages.
  426. string next_page_token = 2;
  427. }
  428. // Request message for GetWorkloadIdentityPool.
  429. message GetWorkloadIdentityPoolRequest {
  430. // Required. The name of the pool to retrieve.
  431. string name = 1 [
  432. (google.api.field_behavior) = REQUIRED,
  433. (google.api.resource_reference) = {
  434. type: "iam.googleapis.com/WorkloadIdentityPool"
  435. }
  436. ];
  437. }
  438. // Request message for CreateWorkloadIdentityPool.
  439. message CreateWorkloadIdentityPoolRequest {
  440. // Required. The parent resource to create the pool in. The only supported
  441. // location is `global`.
  442. string parent = 1 [
  443. (google.api.field_behavior) = REQUIRED,
  444. (google.api.resource_reference) = {
  445. type: "cloudresourcemanager.googleapis.com/Project"
  446. }
  447. ];
  448. // Required. The pool to create.
  449. WorkloadIdentityPool workload_identity_pool = 2 [(google.api.field_behavior) = REQUIRED];
  450. // Required. The ID to use for the pool, which becomes the
  451. // final component of the resource name. This value should be 4-32 characters,
  452. // and may contain the characters [a-z0-9-]. The prefix `gcp-` is
  453. // reserved for use by Google, and may not be specified.
  454. string workload_identity_pool_id = 3 [(google.api.field_behavior) = REQUIRED];
  455. }
  456. // Request message for UpdateWorkloadIdentityPool.
  457. message UpdateWorkloadIdentityPoolRequest {
  458. // Required. The pool to update. The `name` field is used to identify the pool.
  459. WorkloadIdentityPool workload_identity_pool = 1 [(google.api.field_behavior) = REQUIRED];
  460. // Required. The list of fields update.
  461. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  462. }
  463. // Request message for DeleteWorkloadIdentityPool.
  464. message DeleteWorkloadIdentityPoolRequest {
  465. // Required. The name of the pool to delete.
  466. string name = 1 [
  467. (google.api.field_behavior) = REQUIRED,
  468. (google.api.resource_reference) = {
  469. type: "iam.googleapis.com/WorkloadIdentityPool"
  470. }
  471. ];
  472. }
  473. // Request message for UndeleteWorkloadIdentityPool.
  474. message UndeleteWorkloadIdentityPoolRequest {
  475. // Required. The name of the pool to undelete.
  476. string name = 1 [
  477. (google.api.field_behavior) = REQUIRED,
  478. (google.api.resource_reference) = {
  479. type: "iam.googleapis.com/WorkloadIdentityPool"
  480. }
  481. ];
  482. }
  483. // Request message for ListWorkloadIdentityPoolProviders.
  484. message ListWorkloadIdentityPoolProvidersRequest {
  485. // Required. The pool to list providers for.
  486. string parent = 1 [
  487. (google.api.field_behavior) = REQUIRED,
  488. (google.api.resource_reference) = {
  489. type: "iam.googleapis.com/WorkloadIdentityPool"
  490. }
  491. ];
  492. // The maximum number of providers to return.
  493. // If unspecified, at most 50 providers are returned.
  494. // The maximum value is 100; values above 100 are truncated to 100.
  495. int32 page_size = 2;
  496. // A page token, received from a previous
  497. // `ListWorkloadIdentityPoolProviders` call. Provide this to retrieve the
  498. // subsequent page.
  499. string page_token = 3;
  500. // Whether to return soft-deleted providers.
  501. bool show_deleted = 4;
  502. }
  503. // Response message for ListWorkloadIdentityPoolProviders.
  504. message ListWorkloadIdentityPoolProvidersResponse {
  505. // A list of providers.
  506. repeated WorkloadIdentityPoolProvider workload_identity_pool_providers = 1;
  507. // A token, which can be sent as `page_token` to retrieve the next page.
  508. // If this field is omitted, there are no subsequent pages.
  509. string next_page_token = 2;
  510. }
  511. // Request message for GetWorkloadIdentityPoolProvider.
  512. message GetWorkloadIdentityPoolProviderRequest {
  513. // Required. The name of the provider to retrieve.
  514. string name = 1 [
  515. (google.api.field_behavior) = REQUIRED,
  516. (google.api.resource_reference) = {
  517. type: "iam.googleapis.com/WorkloadIdentityPoolProvider"
  518. }
  519. ];
  520. }
  521. // Request message for CreateWorkloadIdentityPoolProvider.
  522. message CreateWorkloadIdentityPoolProviderRequest {
  523. // Required. The pool to create this provider in.
  524. string parent = 1 [
  525. (google.api.field_behavior) = REQUIRED,
  526. (google.api.resource_reference) = {
  527. type: "iam.googleapis.com/WorkloadIdentityPool"
  528. }
  529. ];
  530. // Required. The provider to create.
  531. WorkloadIdentityPoolProvider workload_identity_pool_provider = 2 [(google.api.field_behavior) = REQUIRED];
  532. // Required. The ID for the provider, which becomes the
  533. // final component of the resource name. This value must be 4-32 characters,
  534. // and may contain the characters [a-z0-9-]. The prefix `gcp-` is
  535. // reserved for use by Google, and may not be specified.
  536. string workload_identity_pool_provider_id = 3 [(google.api.field_behavior) = REQUIRED];
  537. }
  538. // Request message for UpdateWorkloadIdentityPoolProvider.
  539. message UpdateWorkloadIdentityPoolProviderRequest {
  540. // Required. The provider to update.
  541. WorkloadIdentityPoolProvider workload_identity_pool_provider = 1 [(google.api.field_behavior) = REQUIRED];
  542. // Required. The list of fields to update.
  543. google.protobuf.FieldMask update_mask = 2 [(google.api.field_behavior) = REQUIRED];
  544. }
  545. // Request message for DeleteWorkloadIdentityPoolProvider.
  546. message DeleteWorkloadIdentityPoolProviderRequest {
  547. // Required. The name of the provider to delete.
  548. string name = 1 [
  549. (google.api.field_behavior) = REQUIRED,
  550. (google.api.resource_reference) = {
  551. type: "iam.googleapis.com/WorkloadIdentityPoolProvider"
  552. }
  553. ];
  554. }
  555. // Request message for UndeleteWorkloadIdentityPoolProvider.
  556. message UndeleteWorkloadIdentityPoolProviderRequest {
  557. // Required. The name of the provider to undelete.
  558. string name = 1 [
  559. (google.api.field_behavior) = REQUIRED,
  560. (google.api.resource_reference) = {
  561. type: "iam.googleapis.com/WorkloadIdentityPoolProvider"
  562. }
  563. ];
  564. }
  565. // Metadata for long-running WorkloadIdentityPool operations.
  566. message WorkloadIdentityPoolOperationMetadata {}
  567. // Metadata for long-running WorkloadIdentityPoolProvider operations.
  568. message WorkloadIdentityPoolProviderOperationMetadata {}