{
  "protocol": "rest",
  "title": "Identity and Access Management (IAM) API",
  "parameters": {
    "access_token": {
      "type": "string",
      "description": "OAuth access token.",
      "location": "query"
    },
    "alt": {
      "type": "string",
      "description": "Data format for response.",
      "default": "json",
      "enum": [
        "json",
        "media",
        "proto"
      ],
      "enumDescriptions": [
        "Responses with Content-Type of application/json",
        "Media download with context-dependent Content-Type",
        "Responses with Content-Type of application/x-protobuf"
      ],
      "location": "query"
    },
    "callback": {
      "type": "string",
      "description": "JSONP",
      "location": "query"
    },
    "fields": {
      "type": "string",
      "description": "Selector specifying which fields to include in a partial response.",
      "location": "query"
    },
    "key": {
      "type": "string",
      "description": "API key. Your API key identifies your project and provides you with API access, quota, and reports. Required unless you provide an OAuth 2.0 token.",
      "location": "query"
    },
    "oauth_token": {
      "type": "string",
      "description": "OAuth 2.0 token for the current user.",
      "location": "query"
    },
    "prettyPrint": {
      "type": "boolean",
      "description": "Returns response with indentations and line breaks.",
      "default": "true",
      "location": "query"
    },
    "quotaUser": {
      "type": "string",
      "description": "Available to use for quota purposes for server-side applications. Can be any arbitrary string assigned to a user, but should not exceed 40 characters.",
      "location": "query"
    },
    "upload_protocol": {
      "type": "string",
      "description": "Upload protocol for media (e.g. \"raw\", \"multipart\").",
      "location": "query"
    },
    "uploadType": {
      "type": "string",
      "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").",
      "location": "query"
    },
    "$.xgafv": {
      "type": "string",
      "description": "V1 error format.",
      "enum": [
        "1",
        "2"
      ],
      "enumDescriptions": [
        "v1 error format",
        "v2 error format"
      ],
      "location": "query"
    }
  },
  "batchPath": "batch",
  "version": "v1beta",
  "discoveryVersion": "v1",
  "rootUrl": "https://iam.s3nsapis.fr/",
  "canonicalName": "Iam",
  "fullyEncodeReservedExpansion": true,
  "baseUrl": "https://iam.s3nsapis.fr/",
  "name": "iam",
  "resources": {
    "projects": {
      "resources": {
        "locations": {
          "resources": {
            "workloadIdentityPools": {
              "methods": {
                "list": {
                  "id": "iam.projects.locations.workloadIdentityPools.list",
                  "path": "v1beta/{+parent}/workloadIdentityPools",
                  "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools",
                  "httpMethod": "GET",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent resource to list pools for.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "pageSize": {
                      "description": "The maximum number of pools to return. If unspecified, at most 50 pools are returned. The maximum value is 1000; values above are 1000 truncated to 1000.",
                      "location": "query",
                      "type": "integer",
                      "format": "int32"
                    },
                    "pageToken": {
                      "description": "A page token, received from a previous `ListWorkloadIdentityPools` call. Provide this to retrieve the subsequent page.",
                      "location": "query",
                      "type": "string"
                    },
                    "showDeleted": {
                      "description": "Whether to return soft-deleted pools.",
                      "location": "query",
                      "type": "boolean"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "response": {
                    "$ref": "GoogleIamV1betaListWorkloadIdentityPoolsResponse"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "The google.iam.v1beta.WorkloadIdentityPools.ListWorkloadIdentityPools method is not available in this (s3nsapis.fr) universe."
                },
                "get": {
                  "id": "iam.projects.locations.workloadIdentityPools.get",
                  "path": "v1beta/{+name}",
                  "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}",
                  "httpMethod": "GET",
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the pool to retrieve.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "GoogleIamV1betaWorkloadIdentityPool"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "The google.iam.v1beta.WorkloadIdentityPools.GetWorkloadIdentityPool method is not available in this (s3nsapis.fr) universe."
                },
                "create": {
                  "id": "iam.projects.locations.workloadIdentityPools.create",
                  "path": "v1beta/{+parent}/workloadIdentityPools",
                  "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools",
                  "httpMethod": "POST",
                  "parameters": {
                    "parent": {
                      "description": "Required. The parent resource to create the pool in. The only supported location is `global`.",
                      "pattern": "^projects/[^/]+/locations/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "workloadIdentityPoolId": {
                      "description": "Required. The ID to use for the pool, which becomes the final component of the resource name. This value should be 4-32 characters, and may contain the characters `[a-z0-9-]`. The prefix `gcp-` is reserved for use by Cloud de Confiance, and may not be specified.",
                      "location": "query",
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "parent"
                  ],
                  "request": {
                    "$ref": "GoogleIamV1betaWorkloadIdentityPool"
                  },
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "The google.iam.v1beta.WorkloadIdentityPools.CreateWorkloadIdentityPool method is not available in this (s3nsapis.fr) universe."
                },
                "patch": {
                  "id": "iam.projects.locations.workloadIdentityPools.patch",
                  "path": "v1beta/{+name}",
                  "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}",
                  "httpMethod": "PATCH",
                  "parameters": {
                    "name": {
                      "description": "Output only. The resource name of the pool.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    },
                    "updateMask": {
                      "description": "Required. The list of fields to update.",
                      "location": "query",
                      "type": "string",
                      "format": "google-fieldmask"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "GoogleIamV1betaWorkloadIdentityPool"
                  },
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "The google.iam.v1beta.WorkloadIdentityPools.UpdateWorkloadIdentityPool method is not available in this (s3nsapis.fr) universe."
                },
                "delete": {
                  "id": "iam.projects.locations.workloadIdentityPools.delete",
                  "path": "v1beta/{+name}",
                  "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}",
                  "httpMethod": "DELETE",
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the pool to delete.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "The google.iam.v1beta.WorkloadIdentityPools.DeleteWorkloadIdentityPool method is not available in this (s3nsapis.fr) universe."
                },
                "undelete": {
                  "id": "iam.projects.locations.workloadIdentityPools.undelete",
                  "path": "v1beta/{+name}:undelete",
                  "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}:undelete",
                  "httpMethod": "POST",
                  "parameters": {
                    "name": {
                      "description": "Required. The name of the pool to undelete.",
                      "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$",
                      "location": "path",
                      "required": true,
                      "type": "string"
                    }
                  },
                  "parameterOrder": [
                    "name"
                  ],
                  "request": {
                    "$ref": "GoogleIamV1betaUndeleteWorkloadIdentityPoolRequest"
                  },
                  "response": {
                    "$ref": "GoogleLongrunningOperation"
                  },
                  "scopes": [
                    "https://www.googleapis.com/auth/cloud-platform"
                  ],
                  "description": "The google.iam.v1beta.WorkloadIdentityPools.UndeleteWorkloadIdentityPool method is not available in this (s3nsapis.fr) universe."
                }
              },
              "resources": {
                "operations": {
                  "methods": {
                    "get": {
                      "id": "iam.projects.locations.workloadIdentityPools.operations.get",
                      "path": "v1beta/{+name}",
                      "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/operations/{operationsId}",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "The name of the operation resource.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/operations/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "GoogleLongrunningOperation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service."
                    }
                  }
                },
                "providers": {
                  "methods": {
                    "list": {
                      "id": "iam.projects.locations.workloadIdentityPools.providers.list",
                      "path": "v1beta/{+parent}/providers",
                      "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers",
                      "httpMethod": "GET",
                      "parameters": {
                        "parent": {
                          "description": "Required. The pool to list providers for.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "pageSize": {
                          "description": "The maximum number of providers to return. If unspecified, at most 50 providers are returned. The maximum value is 100; values above 100 are truncated to 100.",
                          "location": "query",
                          "type": "integer",
                          "format": "int32"
                        },
                        "pageToken": {
                          "description": "A page token, received from a previous `ListWorkloadIdentityPoolProviders` call. Provide this to retrieve the subsequent page.",
                          "location": "query",
                          "type": "string"
                        },
                        "showDeleted": {
                          "description": "Whether to return soft-deleted providers.",
                          "location": "query",
                          "type": "boolean"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "response": {
                        "$ref": "GoogleIamV1betaListWorkloadIdentityPoolProvidersResponse"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "The google.iam.v1beta.WorkloadIdentityPools.ListWorkloadIdentityPoolProviders method is not available in this (s3nsapis.fr) universe."
                    },
                    "get": {
                      "id": "iam.projects.locations.workloadIdentityPools.providers.get",
                      "path": "v1beta/{+name}",
                      "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}",
                      "httpMethod": "GET",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the provider to retrieve.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "GoogleIamV1betaWorkloadIdentityPoolProvider"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "The google.iam.v1beta.WorkloadIdentityPools.GetWorkloadIdentityPoolProvider method is not available in this (s3nsapis.fr) universe."
                    },
                    "create": {
                      "id": "iam.projects.locations.workloadIdentityPools.providers.create",
                      "path": "v1beta/{+parent}/providers",
                      "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers",
                      "httpMethod": "POST",
                      "parameters": {
                        "parent": {
                          "description": "Required. The pool to create this provider in.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "workloadIdentityPoolProviderId": {
                          "description": "Required. The ID for the provider, which becomes the final component of the resource name. This value must be 4-32 characters, and may contain the characters `[a-z0-9-]`. The prefix `gcp-` is reserved for use by Cloud de Confiance, and may not be specified.",
                          "location": "query",
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "parent"
                      ],
                      "request": {
                        "$ref": "GoogleIamV1betaWorkloadIdentityPoolProvider"
                      },
                      "response": {
                        "$ref": "GoogleLongrunningOperation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "The google.iam.v1beta.WorkloadIdentityPools.CreateWorkloadIdentityPoolProvider method is not available in this (s3nsapis.fr) universe."
                    },
                    "patch": {
                      "id": "iam.projects.locations.workloadIdentityPools.providers.patch",
                      "path": "v1beta/{+name}",
                      "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}",
                      "httpMethod": "PATCH",
                      "parameters": {
                        "name": {
                          "description": "Output only. The resource name of the provider.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        },
                        "updateMask": {
                          "description": "Required. The list of fields to update.",
                          "location": "query",
                          "type": "string",
                          "format": "google-fieldmask"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GoogleIamV1betaWorkloadIdentityPoolProvider"
                      },
                      "response": {
                        "$ref": "GoogleLongrunningOperation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "The google.iam.v1beta.WorkloadIdentityPools.UpdateWorkloadIdentityPoolProvider method is not available in this (s3nsapis.fr) universe."
                    },
                    "delete": {
                      "id": "iam.projects.locations.workloadIdentityPools.providers.delete",
                      "path": "v1beta/{+name}",
                      "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}",
                      "httpMethod": "DELETE",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the provider to delete.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "response": {
                        "$ref": "GoogleLongrunningOperation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "The google.iam.v1beta.WorkloadIdentityPools.DeleteWorkloadIdentityPoolProvider method is not available in this (s3nsapis.fr) universe."
                    },
                    "undelete": {
                      "id": "iam.projects.locations.workloadIdentityPools.providers.undelete",
                      "path": "v1beta/{+name}:undelete",
                      "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}:undelete",
                      "httpMethod": "POST",
                      "parameters": {
                        "name": {
                          "description": "Required. The name of the provider to undelete.",
                          "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+$",
                          "location": "path",
                          "required": true,
                          "type": "string"
                        }
                      },
                      "parameterOrder": [
                        "name"
                      ],
                      "request": {
                        "$ref": "GoogleIamV1betaUndeleteWorkloadIdentityPoolProviderRequest"
                      },
                      "response": {
                        "$ref": "GoogleLongrunningOperation"
                      },
                      "scopes": [
                        "https://www.googleapis.com/auth/cloud-platform"
                      ],
                      "description": "The google.iam.v1beta.WorkloadIdentityPools.UndeleteWorkloadIdentityPoolProvider method is not available in this (s3nsapis.fr) universe."
                    }
                  },
                  "resources": {
                    "operations": {
                      "methods": {
                        "get": {
                          "id": "iam.projects.locations.workloadIdentityPools.providers.operations.get",
                          "path": "v1beta/{+name}",
                          "flatPath": "v1beta/projects/{projectsId}/locations/{locationsId}/workloadIdentityPools/{workloadIdentityPoolsId}/providers/{providersId}/operations/{operationsId}",
                          "httpMethod": "GET",
                          "parameters": {
                            "name": {
                              "description": "The name of the operation resource.",
                              "pattern": "^projects/[^/]+/locations/[^/]+/workloadIdentityPools/[^/]+/providers/[^/]+/operations/[^/]+$",
                              "location": "path",
                              "required": true,
                              "type": "string"
                            }
                          },
                          "parameterOrder": [
                            "name"
                          ],
                          "response": {
                            "$ref": "GoogleLongrunningOperation"
                          },
                          "scopes": [
                            "https://www.googleapis.com/auth/cloud-platform"
                          ],
                          "description": "Gets the latest state of a long-running operation. Clients can use this method to poll the operation result at intervals as recommended by the API service."
                        }
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  },
  "ownerName": "Google",
  "version_module": true,
  "revision": "20260326",
  "schemas": {
    "GoogleLongrunningOperation": {
      "id": "GoogleLongrunningOperation",
      "description": "This resource represents a long-running operation that is the result of a network API call.",
      "type": "object",
      "properties": {
        "name": {
          "description": "The server-assigned name, which is only unique within the same service that originally returns it. If you use the default HTTP mapping, the `name` should be a resource name ending with `operations/{unique_id}`.",
          "type": "string"
        },
        "metadata": {
          "description": "Service-specific metadata associated with the operation. It typically contains progress information and common metadata such as create time. Some services might not provide such metadata. Any method that returns a long-running operation should document the metadata type, if any.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        },
        "done": {
          "description": "If the value is `false`, it means the operation is still in progress. If `true`, the operation is completed, and either `error` or `response` is available.",
          "type": "boolean"
        },
        "error": {
          "description": "The error result of the operation in case of failure or cancellation.",
          "$ref": "GoogleRpcStatus"
        },
        "response": {
          "description": "The normal, successful response of the operation. If the original method returns no data on success, such as `Delete`, the response is `google.protobuf.Empty`. If the original method is standard `Get`/`Create`/`Update`, the response should be the resource. For other methods, the response should have the type `XxxResponse`, where `Xxx` is the original method name. For example, if the original method name is `TakeSnapshot()`, the inferred response type is `TakeSnapshotResponse`.",
          "type": "object",
          "additionalProperties": {
            "type": "any",
            "description": "Properties of the object. Contains field @type with type URL."
          }
        }
      }
    },
    "GoogleRpcStatus": {
      "id": "GoogleRpcStatus",
      "description": "The `Status` type defines a logical error model that is suitable for different programming environments, including REST APIs and RPC APIs. It is used by gRPC(https://github.com/grpc). Each `Status` message contains three pieces of data: error code, error message, and error details. You can find out more about this error model and how to work with it in the API Design Guide(https://documentation.s3ns.fr/apis/design/errors).",
      "type": "object",
      "properties": {
        "code": {
          "description": "The status code, which should be an enum value of google.rpc.Code.",
          "type": "integer",
          "format": "int32"
        },
        "message": {
          "description": "A developer-facing error message, which should be in English. Any user-facing error message should be localized and sent in the google.rpc.Status.details field, or localized by the client.",
          "type": "string"
        },
        "details": {
          "description": "A list of messages that carry the error details. There is a common set of message types for APIs to use.",
          "type": "array",
          "items": {
            "type": "object",
            "additionalProperties": {
              "type": "any",
              "description": "Properties of the object. Contains field @type with type URL."
            }
          }
        }
      }
    },
    "GoogleIamV1betaListWorkloadIdentityPoolsResponse": {
      "id": "GoogleIamV1betaListWorkloadIdentityPoolsResponse",
      "description": "Response message for ListWorkloadIdentityPools.",
      "type": "object",
      "properties": {
        "workloadIdentityPools": {
          "description": "A list of pools.",
          "type": "array",
          "items": {
            "$ref": "GoogleIamV1betaWorkloadIdentityPool"
          }
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      }
    },
    "GoogleIamV1betaWorkloadIdentityPool": {
      "id": "GoogleIamV1betaWorkloadIdentityPool",
      "description": "Represents a collection of workload identities. You can define IAM policies to grant these identities access to Cloud de Confiance resources.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. The resource name of the pool.",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "A display name for the pool. Cannot exceed 32 characters.",
          "type": "string"
        },
        "description": {
          "description": "A description of the pool. Cannot exceed 256 characters.",
          "type": "string"
        },
        "state": {
          "description": "Output only. The state of the pool.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "State unspecified.",
            "The pool is active, and may be used in Cloud de Confiance policies.",
            "The pool is soft-deleted. Soft-deleted pools are permanently deleted after approximately 30 days. You can restore a soft-deleted pool using UndeleteWorkloadIdentityPool. You cannot reuse the ID of a soft-deleted pool until it is permanently deleted. While a pool is deleted, you cannot use it to exchange tokens, or use existing tokens to access resources. If the pool is undeleted, existing tokens grant access again."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "DELETED"
          ]
        },
        "disabled": {
          "description": "Whether the pool is disabled. You cannot use a disabled pool to exchange tokens, or use existing tokens to access resources. If the pool is re-enabled, existing tokens grant access again.",
          "type": "boolean"
        },
        "expireTime": {
          "description": "Output only. Time after which the workload identity pool will be permanently purged and cannot be recovered.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "GoogleIamV1betaUndeleteWorkloadIdentityPoolRequest": {
      "id": "GoogleIamV1betaUndeleteWorkloadIdentityPoolRequest",
      "description": "Request message for UndeleteWorkloadIdentityPool.",
      "type": "object",
      "properties": {}
    },
    "GoogleIamV1betaListWorkloadIdentityPoolProvidersResponse": {
      "id": "GoogleIamV1betaListWorkloadIdentityPoolProvidersResponse",
      "description": "Response message for ListWorkloadIdentityPoolProviders.",
      "type": "object",
      "properties": {
        "workloadIdentityPoolProviders": {
          "description": "A list of providers.",
          "type": "array",
          "items": {
            "$ref": "GoogleIamV1betaWorkloadIdentityPoolProvider"
          }
        },
        "nextPageToken": {
          "description": "A token, which can be sent as `page_token` to retrieve the next page. If this field is omitted, there are no subsequent pages.",
          "type": "string"
        }
      }
    },
    "GoogleIamV1betaWorkloadIdentityPoolProvider": {
      "id": "GoogleIamV1betaWorkloadIdentityPoolProvider",
      "description": "A configuration for an external identity provider.",
      "type": "object",
      "properties": {
        "name": {
          "description": "Output only. The resource name of the provider.",
          "readOnly": true,
          "type": "string"
        },
        "displayName": {
          "description": "A display name for the provider. Cannot exceed 32 characters.",
          "type": "string"
        },
        "description": {
          "description": "A description for the provider. Cannot exceed 256 characters.",
          "type": "string"
        },
        "state": {
          "description": "Output only. The state of the provider.",
          "readOnly": true,
          "type": "string",
          "enumDescriptions": [
            "State unspecified.",
            "The provider is active, and may be used to validate authentication credentials.",
            "The provider is soft-deleted. Soft-deleted providers are permanently deleted after approximately 30 days. You can restore a soft-deleted provider using UndeleteWorkloadIdentityPoolProvider. You cannot reuse the ID of a soft-deleted provider until it is permanently deleted."
          ],
          "enum": [
            "STATE_UNSPECIFIED",
            "ACTIVE",
            "DELETED"
          ]
        },
        "disabled": {
          "description": "Whether the provider is disabled. You cannot use a disabled provider to exchange tokens. However, existing tokens still grant access.",
          "type": "boolean"
        },
        "attributeMapping": {
          "description": "Optional. Maps attributes from authentication credentials issued by an external identity provider to Cloud de Confiance attributes, such as `subject` and `segment`. Each key must be a string specifying the Cloud de Confiance IAM attribute to map to. The following keys are supported: * `google.subject`: The principal IAM is authenticating. You can reference this value in IAM bindings. This is also the subject that appears in Cloud Logging logs. Cannot exceed 127 bytes. * `google.groups`: Groups the external identity belongs to. You can grant groups access to resources using an IAM `principalSet` binding; access applies to all members of the group. You can also provide custom attributes by specifying `attribute.{custom_attribute}`, where `{custom_attribute}` is the name of the custom attribute to be mapped. You can define a maximum of 50 custom attributes. The maximum length of a mapped attribute key is 100 characters, and the key may only contain the characters `[a-z0-9_]`. You can reference these attributes in IAM policies to define fine-grained access for a workload to Cloud de Confiance resources. For example: * `google.subject`: `principal://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/subject/{value}` * `google.groups`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/group/{value}` * `attribute.{custom_attribute}`: `principalSet://iam.googleapis.com/projects/{project}/locations/{location}/workloadIdentityPools/{pool}/attribute.{custom_attribute}/{value}` Each value must be a [Common Expression Language] (https://opensource.google/projects/cel) function that maps an identity provider credential to the normalized attribute specified by the corresponding map key. You can use the `assertion` keyword in the expression to access a JSON representation of the authentication credential issued by the provider. The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 8KB. For AWS providers, if no attribute mapping is defined, the following default mapping applies: ``` { \"google.subject\":\"assertion.arn\", \"attribute.aws_role\": \"assertion.arn.contains('assumed-role')\" \" ? assertion.arn.extract('{account_arn}assumed-role/')\" \" + 'assumed-role/'\" \" + assertion.arn.extract('assumed-role/{role_name}/')\" \" : assertion.arn\", } ``` If any custom attribute mappings are defined, they must include a mapping to the `google.subject` attribute. For OIDC providers, you must supply a custom mapping, which must include the `google.subject` attribute. For example, the following maps the `sub` claim of the incoming credential to the `subject` attribute on a Google token: ``` {\"google.subject\": \"assertion.sub\"} ```",
          "type": "object",
          "additionalProperties": {
            "type": "string"
          }
        },
        "attributeCondition": {
          "description": "Optional. [A Common Expression Language](https://opensource.google/projects/cel) expression, in plain text, to restrict what otherwise valid authentication credentials issued by the provider should not be accepted. The expression must output a boolean representing whether to allow the federation. The following keywords may be referenced in the expressions: * `assertion`: JSON representing the authentication credential issued by the provider. * google: The Google attributes mapped from the assertion in the `attribute_mappings`. * `attribute`: The custom attributes mapped from the assertion in the `attribute_mappings`. The maximum length of the attribute condition expression is 4096 characters. If unspecified, all valid authentication credential are accepted. The following example shows how to only allow credentials with a mapped `google.groups` value of `admins`: ``` \"'admins' in google.groups\" ```",
          "type": "string"
        },
        "aws": {
          "description": "An Amazon Web Services identity provider.",
          "$ref": "GoogleIamV1betaWorkloadIdentityPoolProviderAws"
        },
        "oidc": {
          "description": "An OpenId Connect 1.0 identity provider.",
          "$ref": "GoogleIamV1betaWorkloadIdentityPoolProviderOidc"
        },
        "expireTime": {
          "description": "Output only. Time after which the workload identity pool provider will be permanently purged and cannot be recovered.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        }
      }
    },
    "GoogleIamV1betaWorkloadIdentityPoolProviderAws": {
      "id": "GoogleIamV1betaWorkloadIdentityPoolProviderAws",
      "description": "Represents an Amazon Web Services identity provider.",
      "type": "object",
      "properties": {
        "accountId": {
          "description": "Required. The AWS account ID.",
          "type": "string"
        }
      }
    },
    "GoogleIamV1betaWorkloadIdentityPoolProviderOidc": {
      "id": "GoogleIamV1betaWorkloadIdentityPoolProviderOidc",
      "description": "Represents an OpenId Connect 1.0 identity provider.",
      "type": "object",
      "properties": {
        "issuerUri": {
          "description": "Required. The OIDC issuer URL. Must be an HTTPS endpoint.",
          "type": "string"
        },
        "allowedAudiences": {
          "description": "Acceptable values for the `aud` field (audience) in the OIDC token. Token exchange requests are rejected if the token audience does not match one of the configured values. Each audience may be at most 256 characters. A maximum of 10 audiences may be configured. If this list is empty, the OIDC token audience must be equal to the full canonical resource name of the WorkloadIdentityPoolProvider, with or without the HTTPS prefix. For example: ``` //iam.googleapis.com/projects//locations//workloadIdentityPools//providers/ https://iam.googleapis.com/projects//locations//workloadIdentityPools//providers/ ```",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "jwksJson": {
          "description": "Optional. OIDC JWKs in JSON String format. For details on definition of a JWK, see https://tools.ietf.org/html/rfc7517. If not set, then we use the `jwks_uri` from the discovery document fetched from the .well-known path for the `issuer_uri`. Currently, RSA and EC asymmetric keys are supported. The JWK must use following format and include only the following fields: { \"keys\": [ { \"kty\": \"RSA/EC\", \"alg\": \"\", \"use\": \"sig\", \"kid\": \"\", \"n\": \"\", \"e\": \"\", \"x\": \"\", \"y\": \"\", \"crv\": \"\" } ] }",
          "type": "string"
        }
      }
    },
    "GoogleIamV1betaUndeleteWorkloadIdentityPoolProviderRequest": {
      "id": "GoogleIamV1betaUndeleteWorkloadIdentityPoolProviderRequest",
      "description": "Request message for UndeleteWorkloadIdentityPoolProvider.",
      "type": "object",
      "properties": {}
    },
    "GoogleIamAdminV1AuditData": {
      "id": "GoogleIamAdminV1AuditData",
      "description": "Audit log information specific to Cloud IAM admin APIs. This message is serialized as an `Any` type in the `ServiceData` message of an `AuditLog` message.",
      "type": "object",
      "properties": {
        "permissionDelta": {
          "description": "The permission_delta when when creating or updating a Role.",
          "$ref": "GoogleIamAdminV1AuditDataPermissionDelta"
        }
      }
    },
    "GoogleIamAdminV1AuditDataPermissionDelta": {
      "id": "GoogleIamAdminV1AuditDataPermissionDelta",
      "description": "A PermissionDelta message to record the added_permissions and removed_permissions inside a role.",
      "type": "object",
      "properties": {
        "addedPermissions": {
          "description": "Added permissions.",
          "type": "array",
          "items": {
            "type": "string"
          }
        },
        "removedPermissions": {
          "description": "Removed permissions.",
          "type": "array",
          "items": {
            "type": "string"
          }
        }
      }
    },
    "GoogleIamV1LoggingAuditData": {
      "id": "GoogleIamV1LoggingAuditData",
      "description": "Audit log information specific to Cloud IAM. This message is serialized as an `Any` type in the `ServiceData` message of an `AuditLog` message.",
      "type": "object",
      "properties": {
        "policyDelta": {
          "description": "Policy delta between the original policy and the newly set policy.",
          "$ref": "GoogleIamV1PolicyDelta"
        }
      }
    },
    "GoogleIamV1PolicyDelta": {
      "id": "GoogleIamV1PolicyDelta",
      "description": "The difference delta between two policies.",
      "type": "object",
      "properties": {
        "bindingDeltas": {
          "description": "The delta for Bindings between two policies.",
          "type": "array",
          "items": {
            "$ref": "GoogleIamV1BindingDelta"
          }
        }
      }
    },
    "GoogleIamV1BindingDelta": {
      "id": "GoogleIamV1BindingDelta",
      "description": "One delta entry for Binding. Each individual change (only one member in each entry) to a binding will be a separate entry.",
      "type": "object",
      "properties": {
        "action": {
          "description": "The action that was performed on a Binding. Required",
          "type": "string",
          "enumDescriptions": [
            "Unspecified.",
            "Addition of a Binding.",
            "Removal of a Binding."
          ],
          "enum": [
            "ACTION_UNSPECIFIED",
            "ADD",
            "REMOVE"
          ]
        },
        "role": {
          "description": "Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required",
          "type": "string"
        },
        "member": {
          "description": "A single identity requesting access for a Google Cloud resource. Follows the same format of Binding.members. Required",
          "type": "string"
        },
        "condition": {
          "description": "The condition that is associated with this binding.",
          "$ref": "GoogleTypeExpr"
        }
      }
    },
    "GoogleTypeExpr": {
      "id": "GoogleTypeExpr",
      "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() \u003c 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.",
      "type": "object",
      "properties": {
        "expression": {
          "description": "Textual representation of an expression in Common Expression Language syntax.",
          "type": "string"
        },
        "title": {
          "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression.",
          "type": "string"
        },
        "description": {
          "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.",
          "type": "string"
        },
        "location": {
          "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file.",
          "type": "string"
        }
      }
    },
    "GoogleIamV1betaWorkloadIdentityPoolOperationMetadata": {
      "id": "GoogleIamV1betaWorkloadIdentityPoolOperationMetadata",
      "description": "Metadata for long-running WorkloadIdentityPool operations.",
      "type": "object",
      "properties": {}
    },
    "GoogleCloudCommonOperationMetadata": {
      "id": "GoogleCloudCommonOperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the operation.",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "statusDetail": {
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "cancelRequested": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have been cancelled successfully have google.longrunning.Operation.error value with a google.rpc.Status.code of `1`, corresponding to `Code.CANCELLED`.",
          "readOnly": true,
          "type": "boolean"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleIamV3mainOperationMetadata": {
      "id": "GoogleIamV3mainOperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "statusMessage": {
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "requestedCancellation": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true,
          "type": "boolean"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleIamV3alphaOperationMetadata": {
      "id": "GoogleIamV3alphaOperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "statusMessage": {
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "requestedCancellation": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true,
          "type": "boolean"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleIamV3betaOperationMetadata": {
      "id": "GoogleIamV3betaOperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "statusMessage": {
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "requestedCancellation": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true,
          "type": "boolean"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "GoogleIamV3OperationMetadata": {
      "id": "GoogleIamV3OperationMetadata",
      "description": "Represents the metadata of the long-running operation.",
      "type": "object",
      "properties": {
        "createTime": {
          "description": "Output only. The time the operation was created.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "endTime": {
          "description": "Output only. The time the operation finished running.",
          "readOnly": true,
          "type": "string",
          "format": "google-datetime"
        },
        "target": {
          "description": "Output only. Server-defined resource path for the target of the",
          "readOnly": true,
          "type": "string"
        },
        "verb": {
          "description": "Output only. Name of the verb executed by the operation.",
          "readOnly": true,
          "type": "string"
        },
        "statusMessage": {
          "description": "Output only. Human-readable status of the operation, if any.",
          "readOnly": true,
          "type": "string"
        },
        "requestedCancellation": {
          "description": "Output only. Identifies whether the user has requested cancellation of the operation. Operations that have successfully been cancelled have Operation.error value with a google.rpc.Status.code of 1, corresponding to `Code.CANCELLED`.",
          "readOnly": true,
          "type": "boolean"
        },
        "apiVersion": {
          "description": "Output only. API version used to start the operation.",
          "readOnly": true,
          "type": "string"
        }
      }
    },
    "CloudControl2SharedOperationsReconciliationOperationMetadata": {
      "id": "CloudControl2SharedOperationsReconciliationOperationMetadata",
      "description": "Operation metadata returned by the CLH during resource state reconciliation.",
      "type": "object",
      "properties": {
        "deleteResource": {
          "description": "DEPRECATED. Use exclusive_action instead.",
          "deprecated": true,
          "type": "boolean"
        },
        "exclusiveAction": {
          "description": "Excluisive action returned by the CLH.",
          "type": "string",
          "enumDescriptions": [
            "Unknown repair action.",
            "The resource has to be deleted. When using this bit, the CLH should fail the operation. DEPRECATED. Instead use DELETE_RESOURCE OperationSignal in SideChannel.",
            "This resource could not be repaired but the repair should be tried again at a later time. This can happen if there is a dependency that needs to be resolved first- e.g. if a parent resource must be repaired before a child resource."
          ],
          "enumDeprecated": [
            false,
            true,
            false
          ],
          "enum": [
            "UNKNOWN_REPAIR_ACTION",
            "DELETE",
            "RETRY"
          ]
        }
      }
    }
  },
  "description": "Manages identity and access control for Cloud de Confiance Platform resources, including the creation of service accounts, which you can use to authenticate to Cloud de Confiance and make API calls.",
  "servicePath": "",
  "icons": {
    "x16": "",
    "x32": ""
  },
  "auth": {
    "oauth2": {
      "scopes": {
        "https://www.googleapis.com/auth/cloud-platform": {
          "description": "See, edit, configure, and delete your Google Cloud data and see the email address for your Google Account."
        }
      }
    }
  },
  "documentationLink": "https://documentation.s3ns.fr/iam",
  "id": "iam:v1beta",
  "ownerDomain": "google.com",
  "kind": "discovery#restDescription",
  "basePath": ""
}
