File manager - Edit - /home/u478019808/domains/bestandroidphones.store/public_html/static/img/logo/iam_sample.zip
Back
PK Ӄ�ZQ5��S� S� iam_v1.jsonnu �[��� { "kind": "discovery#restDescription", "discoveryVersion": "v1", "id": "iam:v1", "name": "iam", "canonicalName": "iam", "version": "v1", "revision": "0", "title": "Google Identity and Access Management (IAM) API", "description": "Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls.", "ownerDomain": "google.com", "ownerName": "Google", "icons": { "x16": "http://www.google.com/images/icons/product/search-16.gif", "x32": "http://www.google.com/images/icons/product/search-32.gif" }, "documentationLink": "https://cloud.google.com/iam/", "protocol": "rest", "rootUrl": "https://iam.googleapis.com/", "servicePath": "", "baseUrl": "https://iam.googleapis.com/", "batchPath": "batch", "version_module": "True", "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" }, "bearer_token": { "type": "string", "description": "OAuth bearer token.", "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" }, "pp": { "type": "boolean", "description": "Pretty-print response.", "default": "true", "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" } }, "auth": { "oauth2": { "scopes": { "https://www.googleapis.com/auth/cloud-platform": { "description": "View and manage your data across Google Cloud Platform services" } } } }, "schemas": { "ListServiceAccountsResponse": { "id": "ListServiceAccountsResponse", "description": "The service account list response.", "type": "object", "properties": { "accounts": { "description": "The list of matching service accounts.", "type": "array", "items": { "$ref": "ServiceAccount" } }, "nextPageToken": { "description": "To retrieve the next page of results, set\nListServiceAccountsRequest.page_token\nto this value.", "type": "string" } } }, "ServiceAccount": { "id": "ServiceAccount", "description": "A service account in the Identity and Access Management API.\n\nTo create a service account, specify the `project_id` and the `account_id`\nfor the account. The `account_id` is unique within the project, and is used\nto generate the service account email address and a stable\n`unique_id`.\n\nAll other methods can identify the service account using the format\n`projects\/{project}\/serviceAccounts\/{account}`.\nUsing `-` as a wildcard for the project will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "type": "object", "properties": { "name": { "description": "The resource name of the service account in the following format:\n`projects\/{project}\/serviceAccounts\/{account}`.\n\nRequests using `-` as a wildcard for the project will infer the project\nfrom the `account` and the `account` value can be the `email` address or\nthe `unique_id` of the service account.\n\nIn responses the resource name will always be in the format\n`projects\/{project}\/serviceAccounts\/{email}`.", "type": "string" }, "projectId": { "description": "@OutputOnly The id of the project that owns the service account.", "type": "string" }, "uniqueId": { "description": "@OutputOnly The unique and stable id of the service account.", "type": "string" }, "email": { "description": "@OutputOnly The email address of the service account.", "type": "string" }, "displayName": { "description": "Optional. A user-specified description of the service account. Must be\nfewer than 100 UTF-8 bytes.", "type": "string" }, "etag": { "description": "Used to perform a consistent read-modify-write.", "type": "string", "format": "byte" }, "description": { "description": "Optional. A user-specified opaque description of the service account.", "type": "string" }, "oauth2ClientId": { "description": "@OutputOnly. The OAuth2 client id for the service account.\nThis is used in conjunction with the OAuth2 clientconfig API to make\nthree legged OAuth2 (3LO) flows to access the data of Google users.", "type": "string" } } }, "CreateServiceAccountRequest": { "id": "CreateServiceAccountRequest", "description": "The service account create request.", "type": "object", "properties": { "accountId": { "description": "Required. The account id that is used to generate the service account\nemail address and a stable unique id. It is unique within a project,\nmust be 1-63 characters long, and match the regular expression\n`[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035.", "type": "string" }, "serviceAccount": { "description": "The ServiceAccount resource to create.\nCurrently, only the following values are user assignable:\n`display_name` .", "$ref": "ServiceAccount" } } }, "Empty": { "id": "Empty", "description": "A generic empty message that you can re-use to avoid defining duplicated\nempty messages in your APIs. A typical example is to use it as the request\nor the response type of an API method. For instance:\n\n service Foo {\n rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty);\n }\n\nThe JSON representation for `Empty` is empty JSON object `{}`.", "type": "object", "properties": { } }, "ListServiceAccountKeysResponse": { "id": "ListServiceAccountKeysResponse", "description": "The service account keys list response.", "type": "object", "properties": { "keys": { "description": "The public keys for the service account.", "type": "array", "items": { "$ref": "ServiceAccountKey" } } } }, "ServiceAccountKey": { "id": "ServiceAccountKey", "description": "Represents a service account key.\n\nA service account has two sets of key-pairs: user-managed, and\nsystem-managed.\n\nUser-managed key-pairs can be created and deleted by users. Users are\nresponsible for rotating these keys periodically to ensure security of\ntheir service accounts. Users retain the private key of these key-pairs,\nand Google retains ONLY the public key.\n\nSystem-managed key-pairs are managed automatically by Google, and rotated\ndaily without user intervention. The private key never leaves Google's\nservers to maximize security.\n\nPublic keys for all service accounts are also published at the OAuth2\nService Account API.", "type": "object", "properties": { "name": { "description": "The resource name of the service account key in the following format\n`projects\/{project}\/serviceAccounts\/{account}\/keys\/{key}`.", "type": "string" }, "privateKeyType": { "description": "The output format for the private key.\nOnly provided in `CreateServiceAccountKey` responses, not\nin `GetServiceAccountKey` or `ListServiceAccountKey` responses.\n\nGoogle never exposes system-managed private keys, and never retains\nuser-managed private keys.", "enumDescriptions": [ "Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.", "PKCS12 format.\nThe password for the PKCS12 file is `notasecret`.\nFor more information, see https:\/\/tools.ietf.org\/html\/rfc7292.", "Google Credentials File format." ], "type": "string", "enum": [ "TYPE_UNSPECIFIED", "TYPE_PKCS12_FILE", "TYPE_GOOGLE_CREDENTIALS_FILE" ] }, "privateKeyData": { "description": "The private key data. Only provided in `CreateServiceAccountKey`\nresponses.", "type": "string", "format": "byte" }, "publicKeyData": { "description": "The public key data. Only provided in `GetServiceAccountKey` responses.", "type": "string", "format": "byte" }, "validAfterTime": { "description": "The key can be used after this timestamp.", "type": "string", "format": "google-datetime" }, "validBeforeTime": { "description": "The key can be used before this timestamp.", "type": "string", "format": "google-datetime" } } }, "CreateServiceAccountKeyRequest": { "id": "CreateServiceAccountKeyRequest", "description": "The service account key create request.", "type": "object", "properties": { "privateKeyType": { "description": "The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the\ndefault output format.", "enumDescriptions": [ "Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`.", "PKCS12 format.\nThe password for the PKCS12 file is `notasecret`.\nFor more information, see https:\/\/tools.ietf.org\/html\/rfc7292.", "Google Credentials File format." ], "type": "string", "enum": [ "TYPE_UNSPECIFIED", "TYPE_PKCS12_FILE", "TYPE_GOOGLE_CREDENTIALS_FILE" ] } } }, "SignBlobRequest": { "id": "SignBlobRequest", "description": "The service account sign blob request.", "type": "object", "properties": { "bytesToSign": { "description": "The bytes to sign.", "type": "string", "format": "byte" } } }, "SignBlobResponse": { "id": "SignBlobResponse", "description": "The service account sign blob response.", "type": "object", "properties": { "keyId": { "description": "The id of the key used to sign the blob.", "type": "string" }, "signature": { "description": "The signed blob.", "type": "string", "format": "byte" } } }, "SignJwtRequest": { "id": "SignJwtRequest", "description": "The service account sign JWT request.", "type": "object", "properties": { "payload": { "description": "The JWT payload to sign, a JSON JWT Claim set.", "type": "string" } } }, "SignJwtResponse": { "id": "SignJwtResponse", "description": "The service account sign JWT response.", "type": "object", "properties": { "keyId": { "description": "The id of the key used to sign the JWT.", "type": "string" }, "signedJwt": { "description": "The signed JWT.", "type": "string" } } }, "Policy": { "id": "Policy", "description": "Defines an Identity and Access Management (IAM) policy. It is used to\nspecify access control policies for Cloud Platform resources.\n\n\nA `Policy` consists of a list of `bindings`. A `Binding` binds a list of\n`members` to a `role`, where the members can be user accounts, Google groups,\nGoogle domains, and service accounts. A `role` is a named list of permissions\ndefined by IAM.\n\n**Example**\n\n {\n \"bindings\": [\n {\n \"role\": \"roles\/owner\",\n \"members\": [\n \"user:mike@example.com\",\n \"group:admins@example.com\",\n \"domain:google.com\",\n \"serviceAccount:my-other-app@appspot.gserviceaccount.com\",\n ]\n },\n {\n \"role\": \"roles\/viewer\",\n \"members\": [\"user:sean@example.com\"]\n }\n ]\n }\n\nFor a description of IAM and its features, see the\n[IAM developer's guide](https:\/\/cloud.google.com\/iam).", "type": "object", "properties": { "version": { "description": "Version of the `Policy`. The default version is 0.", "type": "integer", "format": "int32" }, "bindings": { "description": "Associates a list of `members` to a `role`.\nMultiple `bindings` must not be specified for the same `role`.\n`bindings` with no members will result in an error.", "type": "array", "items": { "$ref": "Binding" } }, "auditConfigs": { "description": "Specifies audit logging configs for \"data access\".\n\"data access\": generally refers to data reads\/writes and admin reads.\n\"admin activity\": generally refers to admin writes.\n\nNote: `AuditConfig` doesn't apply to \"admin activity\", which always\nenables audit logging.", "type": "array", "items": { "$ref": "AuditConfig" } }, "rules": { "description": "If more than one rule is specified, the rules are applied in the following\nmanner:\n- All matching LOG rules are always applied.\n- If any DENY\/DENY_WITH_LOG rule matches, permission is denied.\n Logging will be applied if one or more matching rule requires logging.\n- Otherwise, if any ALLOW\/ALLOW_WITH_LOG rule matches, permission is\n granted.\n Logging will be applied if one or more matching rule requires logging.\n- Otherwise, if no rule applies, permission is denied.", "type": "array", "items": { "$ref": "Rule" } }, "etag": { "description": "`etag` is used for optimistic concurrency control as a way to help\nprevent simultaneous updates of a policy from overwriting each other.\nIt is strongly suggested that systems make use of the `etag` in the\nread-modify-write cycle to perform policy updates in order to avoid race\nconditions: An `etag` is returned in the response to `getIamPolicy`, and\nsystems are expected to put that etag in the request to `setIamPolicy` to\nensure that their change will be applied to the same version of the policy.\n\nIf no `etag` is provided in the call to `setIamPolicy`, then the existing\npolicy is overwritten blindly.", "type": "string", "format": "byte" }, "iamOwned": { "type": "boolean" } } }, "Binding": { "id": "Binding", "description": "Associates `members` with a `role`.", "type": "object", "properties": { "role": { "description": "Role that is assigned to `members`.\nFor example, `roles\/viewer`, `roles\/editor`, or `roles\/owner`.\nRequired", "type": "string" }, "members": { "description": "Specifies the identities requesting access for a Cloud Platform resource.\n`members` can have the following values:\n\n* `allUsers`: A special identifier that represents anyone who is\n on the internet; with or without a Google account.\n\n* `allAuthenticatedUsers`: A special identifier that represents anyone\n who is authenticated with a Google account or a service account.\n\n* `user:{emailid}`: An email address that represents a specific Google\n account. For example, `alice@gmail.com` or `joe@example.com`.\n\n* `serviceAccount:{emailid}`: An email address that represents a service\n account. For example, `my-other-app@appspot.gserviceaccount.com`.\n\n* `group:{emailid}`: An email address that represents a Google group.\n For example, `admins@example.com`.\n\n* `domain:{domain}`: A Google Apps domain name that represents all the\n users of that domain. For example, `google.com` or `example.com`.\n\n\n", "type": "array", "items": { "type": "string" } } } }, "AuditConfig": { "id": "AuditConfig", "description": "Enables \"data access\" audit logging for a service and specifies a list\nof members that are log-exempted.", "type": "object", "properties": { "service": { "description": "Specifies a service that will be enabled for \"data access\" audit\nlogging.\nFor example, `resourcemanager`, `storage`, `compute`.\n`allServices` is a special value that covers all services.", "type": "string" }, "exemptedMembers": { "description": "Specifies the identities that are exempted from \"data access\" audit\nlogging for the `service` specified above.\nFollows the same format of Binding.members.", "type": "array", "items": { "type": "string" } } } }, "Rule": { "id": "Rule", "description": "A rule to be applied in a Policy.", "type": "object", "properties": { "description": { "description": "Human-readable description of the rule.", "type": "string" }, "permissions": { "description": "A permission is a string of form '<service>.<resource type>.<verb>'\n(e.g., 'storage.buckets.list'). A value of '*' matches all permissions,\nand a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.", "type": "array", "items": { "type": "string" } }, "action": { "description": "Required", "enumDescriptions": [ "Default no action.", "Matching 'Entries' grant access.", "Matching 'Entries' grant access and the caller promises to log\nthe request per the returned log_configs.", "Matching 'Entries' deny access.", "Matching 'Entries' deny access and the caller promises to log\nthe request per the returned log_configs.", "Matching 'Entries' tell IAM.Check callers to generate logs." ], "type": "string", "enum": [ "NO_ACTION", "ALLOW", "ALLOW_WITH_LOG", "DENY", "DENY_WITH_LOG", "LOG" ] }, "in": { "description": "If one or more 'in' clauses are specified, the rule matches if\nthe PRINCIPAL\/AUTHORITY_SELECTOR is in at least one of these entries.", "type": "array", "items": { "type": "string" } }, "notIn": { "description": "If one or more 'not_in' clauses are specified, the rule matches\nif the PRINCIPAL\/AUTHORITY_SELECTOR is in none of the entries.\nThe format for in and not_in entries is the same as for members in a\nBinding (see google\/iam\/v1\/policy.proto).", "type": "array", "items": { "type": "string" } }, "conditions": { "description": "Additional restrictions that must be met", "type": "array", "items": { "$ref": "Condition" } }, "logConfig": { "description": "The config returned to callers of tech.iam.IAM.CheckPolicy for any entries\nthat match the LOG action.", "type": "array", "items": { "$ref": "LogConfig" } } } }, "Condition": { "id": "Condition", "description": "A condition to be met.", "type": "object", "properties": { "iam": { "description": "Trusted attributes supplied by the IAM system.", "enumDescriptions": [ "Default non-attribute.", "Either principal or (if present) authority", "selector\nAlways the original principal, but making clear" ], "type": "string", "enum": [ "NO_ATTR", "AUTHORITY", "ATTRIBUTION" ] }, "sys": { "description": "Trusted attributes supplied by any service that owns resources and uses\nthe IAM system for access control.", "enumDescriptions": [ "Default non-attribute type", "Region of the resource", "Service name", "Resource name", "IP address of the caller" ], "type": "string", "enum": [ "NO_ATTR", "REGION", "SERVICE", "NAME", "IP" ] }, "svc": { "description": "Trusted attributes discharged by the service.", "type": "string" }, "op": { "description": "An operator to apply the subject with.", "enumDescriptions": [ "Default no-op.", "DEPRECATED. Use IN instead.", "DEPRECATED. Use NOT_IN instead.", "Set-inclusion check.", "Set-exclusion check.", "Subject is discharged" ], "type": "string", "enum": [ "NO_OP", "EQUALS", "NOT_EQUALS", "IN", "NOT_IN", "DISCHARGED" ] }, "value": { "description": "DEPRECATED. Use 'values' instead.", "type": "string" }, "values": { "description": "The objects of the condition. This is mutually exclusive with 'value'.", "type": "array", "items": { "type": "string" } } } }, "LogConfig": { "id": "LogConfig", "description": "Specifies what kind of log the caller must write\nIncrement a streamz counter with the specified metric and field names.\n\nMetric names should start with a '\/', generally be lowercase-only,\nand end in \"_count\". Field names should not contain an initial slash.\nThe actual exported metric names will have \"\/iam\/policy\" prepended.\n\nField names correspond to IAM request parameters and field values are\ntheir respective values.\n\nAt present the only supported field names are\n - \"iam_principal\", corresponding to IAMContext.principal;\n - \"\" (empty string), resulting in one aggretated counter with no field.\n\nExamples:\n counter { metric: \"\/debug_access_count\" field: \"iam_principal\" }\n ==> increment counter \/iam\/policy\/backend_debug_access_count\n {iam_principal=[value of IAMContext.principal]}\n\nAt this time we do not support:\n* multiple field names (though this may be supported in the future)\n* decrementing the counter\n* incrementing it by anything other than 1", "type": "object", "properties": { "counter": { "description": "Counter options.", "$ref": "CounterOptions" }, "dataAccess": { "description": "Data access options.", "$ref": "DataAccessOptions" }, "cloudAudit": { "description": "Cloud audit options.", "$ref": "CloudAuditOptions" } } }, "CounterOptions": { "id": "CounterOptions", "description": "Options for counters", "type": "object", "properties": { "metric": { "description": "The metric to update.", "type": "string" }, "field": { "description": "The field value to attribute.", "type": "string" } } }, "DataAccessOptions": { "id": "DataAccessOptions", "description": "Write a Data Access (Gin) log", "type": "object", "properties": { } }, "CloudAuditOptions": { "id": "CloudAuditOptions", "description": "Write a Cloud Audit log", "type": "object", "properties": { } }, "SetIamPolicyRequest": { "id": "SetIamPolicyRequest", "description": "Request message for `SetIamPolicy` method.", "type": "object", "properties": { "policy": { "description": "REQUIRED: The complete policy to be applied to the `resource`. The size of\nthe policy is limited to a few 10s of KB. An empty policy is a\nvalid policy but certain Cloud Platform services (such as Projects)\nmight reject them.", "$ref": "Policy" } } }, "TestIamPermissionsRequest": { "id": "TestIamPermissionsRequest", "description": "Request message for `TestIamPermissions` method.", "type": "object", "properties": { "permissions": { "description": "The set of permissions to check for the `resource`. Permissions with\nwildcards (such as '*' or 'storage.*') are not allowed. For more\ninformation see\nIAM Overview.", "type": "array", "items": { "type": "string" } } } }, "TestIamPermissionsResponse": { "id": "TestIamPermissionsResponse", "description": "Response message for `TestIamPermissions` method.", "type": "object", "properties": { "permissions": { "description": "A subset of `TestPermissionsRequest.permissions` that the caller is\nallowed.", "type": "array", "items": { "type": "string" } } } }, "QueryGrantableRolesRequest": { "id": "QueryGrantableRolesRequest", "description": "The grantable role query request.", "type": "object", "properties": { "fullResourceName": { "description": "Required. The full resource name to query from the list of grantable roles.\n\nThe name follows the Google Cloud Platform resource format.\nFor example, a Cloud Platform project with id `my-project` will be named\n`\/\/cloudresourcemanager.googleapis.com\/projects\/my-project`.", "type": "string" } } }, "QueryGrantableRolesResponse": { "id": "QueryGrantableRolesResponse", "description": "The grantable role query response.", "type": "object", "properties": { "roles": { "description": "The list of matching roles.", "type": "array", "items": { "$ref": "Role" } } } }, "Role": { "id": "Role", "description": "A role in the Identity and Access Management API.", "type": "object", "properties": { "name": { "description": "The name of the role.\n\nExamples of roles names are:\n`roles\/editor`, `roles\/viewer` and `roles\/logging.viewer`.", "type": "string" }, "title": { "description": "Optional. A human-readable title for the role. Typically this\nis limited to 100 UTF-8 bytes.", "type": "string" }, "description": { "description": "Optional. A human-readable description for the role.", "type": "string" }, "apiTokens": { "type": "array", "items": { "type": "string" } } } }, "GetPolicyDetailsRequest": { "id": "GetPolicyDetailsRequest", "description": "The request to get the current policy and the policies on the inherited\nresources the user has access to.", "type": "object", "properties": { "fullResourcePath": { "description": "REQUIRED: The full resource path of the current policy being\nrequested, e.g., `\/\/dataflow.googleapis.com\/projects\/..\/jobs\/..`.", "type": "string" }, "pageToken": { "description": "Optional pagination token returned in an earlier\nGetPolicyDetailsResponse.next_page_token\nresponse.", "type": "string" }, "pageSize": { "description": "Limit on the number of policies to include in the response.\nFurther accounts can subsequently be obtained by including the\nGetPolicyDetailsResponse.next_page_token\nin a subsequent request.\nIf zero, the default page size 20 will be used.\nMust be given a value in range [0, 100], otherwise an invalid argument\nerror will be returned.", "type": "integer", "format": "int32" } } }, "GetPolicyDetailsResponse": { "id": "GetPolicyDetailsResponse", "description": "The response to the `GetPolicyDetailsRequest` containing the current policy and\nthe policies on the inherited resources the user has access to.", "type": "object", "properties": { "policies": { "description": "The current policy and all the inherited policies the user has\naccess to.", "type": "array", "items": { "$ref": "PolicyDetail" } }, "nextPageToken": { "description": "To retrieve the next page of results, set\nGetPolicyDetailsRequest.page_token\nto this value.\nIf this value is empty, then there are not any further policies that the\nuser has access to.\nThe lifetime is 60 minutes. An \"Expired pagination token\" error will be\nreturned if exceeded.", "type": "string" } } }, "PolicyDetail": { "id": "PolicyDetail", "description": "A policy and its full resource path.", "type": "object", "properties": { "policy": { "description": "The policy of a `resource\/project\/folder`.", "$ref": "Policy" }, "fullResourcePath": { "description": "The full resource path of the policy\ne.g., `\/\/dataflow.googleapis.com\/projects\/..\/jobs\/..`.\nNote that a resource and its inherited resource have different\n`full_resource_path`.", "type": "string" } } } }, "resources": { "projects": { "resources": { "serviceAccounts": { "methods": { "list": { "id": "iam.projects.serviceAccounts.list", "path": "v1/{+name}/serviceAccounts", "flatPath": "v1/projects/{projectsId}/serviceAccounts", "httpMethod": "GET", "description": "Lists ServiceAccounts for a project.", "parameters": { "name": { "description": "Required. The resource name of the project associated with the service\naccounts, such as `projects\/my-project-123`.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*$", "type": "string" }, "pageSize": { "description": "Optional limit on the number of service accounts to include in the\nresponse. Further accounts can subsequently be obtained by including the\nListServiceAccountsResponse.next_page_token\nin a subsequent request.", "location": "query", "type": "integer", "format": "int32" }, "pageToken": { "description": "Optional pagination token returned in an earlier\nListServiceAccountsResponse.next_page_token.", "location": "query", "type": "string" }, "removeDeletedServiceAccounts": { "description": "Do not list service accounts deleted from Gaia.\n<b><font color=\"red\">DO NOT INCLUDE IN EXTERNAL DOCUMENTATION<\/font><\/b>.", "location": "query", "type": "boolean" } }, "parameterOrder": [ "name" ], "response": { "$ref": "ListServiceAccountsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "get": { "id": "iam.projects.serviceAccounts.get", "path": "v1/{+name}", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", "httpMethod": "GET", "description": "Gets a ServiceAccount.", "parameters": { "name": { "description": "The resource name of the service account in the following format:\n`projects\/{project}\/serviceAccounts\/{account}`.\nUsing `-` as a wildcard for the project will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "ServiceAccount" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "create": { "id": "iam.projects.serviceAccounts.create", "path": "v1/{+name}/serviceAccounts", "flatPath": "v1/projects/{projectsId}/serviceAccounts", "httpMethod": "POST", "description": "Creates a ServiceAccount\nand returns it.", "parameters": { "name": { "description": "Required. The resource name of the project associated with the service\naccounts, such as `projects\/my-project-123`.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "CreateServiceAccountRequest" }, "response": { "$ref": "ServiceAccount" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "update": { "id": "iam.projects.serviceAccounts.update", "path": "v1/{+name}", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", "httpMethod": "PUT", "description": "Updates a ServiceAccount.\n\nCurrently, only the following fields are updatable:\n`display_name` .\nThe `etag` is mandatory.", "parameters": { "name": { "description": "The resource name of the service account in the following format:\n`projects\/{project}\/serviceAccounts\/{account}`.\n\nRequests using `-` as a wildcard for the project will infer the project\nfrom the `account` and the `account` value can be the `email` address or\nthe `unique_id` of the service account.\n\nIn responses the resource name will always be in the format\n`projects\/{project}\/serviceAccounts\/{email}`.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "ServiceAccount" }, "response": { "$ref": "ServiceAccount" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "delete": { "id": "iam.projects.serviceAccounts.delete", "path": "v1/{+name}", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}", "httpMethod": "DELETE", "description": "Deletes a ServiceAccount.", "parameters": { "name": { "description": "The resource name of the service account in the following format:\n`projects\/{project}\/serviceAccounts\/{account}`.\nUsing `-` as a wildcard for the project will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "signBlob": { "id": "iam.projects.serviceAccounts.signBlob", "path": "v1/{+name}:signBlob", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signBlob", "httpMethod": "POST", "description": "Signs a blob using a service account's system-managed private key.", "parameters": { "name": { "description": "The resource name of the service account in the following format:\n`projects\/{project}\/serviceAccounts\/{account}`.\nUsing `-` as a wildcard for the project will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "SignBlobRequest" }, "response": { "$ref": "SignBlobResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "signJwt": { "id": "iam.projects.serviceAccounts.signJwt", "path": "v1/{+name}:signJwt", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signJwt", "httpMethod": "POST", "description": "Signs a JWT using a service account's system-managed private key.\n\nIf no `exp` (expiry) time is contained in the claims, we will\nprovide an expiry of one hour in the future. If an expiry\nof more than one hour in the future is requested, the request\nwill fail.", "parameters": { "name": { "description": "The resource name of the service account in the following format:\n`projects\/{project}\/serviceAccounts\/{account}`.\nUsing `-` as a wildcard for the project will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "SignJwtRequest" }, "response": { "$ref": "SignJwtResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "getIamPolicy": { "id": "iam.projects.serviceAccounts.getIamPolicy", "path": "v1/{+resource}:getIamPolicy", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:getIamPolicy", "httpMethod": "POST", "description": "Returns the IAM access control policy for specified IAM resource.", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being requested.\n`resource` is usually specified as a path, such as\n`projects\/*project*\/zones\/*zone*\/disks\/*disk*`.\n\nThe format for the path specified in this value is resource specific and\nis specified in the `getIamPolicy` documentation.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" }, "options.requestedPolicyVersion": { "description": "Optional. The policy format version to be returned.\nAcceptable values are 0 and 1.\nIf the value is 0, or the field is omitted, policy format version 1 will be\nreturned.", "location": "query", "type": "integer", "format": "int32" } }, "parameterOrder": [ "resource" ], "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "setIamPolicy": { "id": "iam.projects.serviceAccounts.setIamPolicy", "path": "v1/{+resource}:setIamPolicy", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:setIamPolicy", "httpMethod": "POST", "description": "Sets the IAM access control policy for the specified IAM resource.", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy is being specified.\n`resource` is usually specified as a path, such as\n`projects\/*project*\/zones\/*zone*\/disks\/*disk*`.\n\nThe format for the path specified in this value is resource specific and\nis specified in the `setIamPolicy` documentation.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "SetIamPolicyRequest" }, "response": { "$ref": "Policy" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "testIamPermissions": { "id": "iam.projects.serviceAccounts.testIamPermissions", "path": "v1/{+resource}:testIamPermissions", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:testIamPermissions", "httpMethod": "POST", "description": "Tests the specified permissions against the IAM access control policy\nfor the specified IAM resource.", "parameters": { "resource": { "description": "REQUIRED: The resource for which the policy detail is being requested.\n`resource` is usually specified as a path, such as\n`projects\/*project*\/zones\/*zone*\/disks\/*disk*`.\n\nThe format for the path specified in this value is resource specific and\nis specified in the `testIamPermissions` documentation.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "resource" ], "request": { "$ref": "TestIamPermissionsRequest" }, "response": { "$ref": "TestIamPermissionsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] } } , "resources": { "keys": { "methods": { "list": { "id": "iam.projects.serviceAccounts.keys.list", "path": "v1/{+name}/keys", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", "httpMethod": "GET", "description": "Lists ServiceAccountKeys.", "parameters": { "name": { "description": "The resource name of the service account in the following format:\n`projects\/{project}\/serviceAccounts\/{account}`.\n\nUsing `-` as a wildcard for the project, will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" }, "keyTypes": { "description": "Filters the types of keys the user wants to include in the list\nresponse. Duplicate key types are not allowed. If no key type\nis provided, all keys are returned.", "location": "query", "repeated": true, "type": "string", "enum": [ "KEY_TYPE_UNSPECIFIED", "USER_MANAGED", "SYSTEM_MANAGED" ] } }, "parameterOrder": [ "name" ], "response": { "$ref": "ListServiceAccountKeysResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "get": { "id": "iam.projects.serviceAccounts.keys.get", "path": "v1/{+name}", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}", "httpMethod": "GET", "description": "Gets the ServiceAccountKey\nby key id.", "parameters": { "name": { "description": "The resource name of the service account key in the following format:\n`projects\/{project}\/serviceAccounts\/{account}\/keys\/{key}`.\n\nUsing `-` as a wildcard for the project will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*\/keys\/[^\/]*$", "type": "string" }, "publicKeyType": { "description": "The output format of the public key requested.\nX509_PEM is the default output format.", "location": "query", "type": "string", "enum": [ "TYPE_NONE", "TYPE_X509_PEM_FILE", "TYPE_RAW_PUBLIC_KEY" ] } }, "parameterOrder": [ "name" ], "response": { "$ref": "ServiceAccountKey" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "create": { "id": "iam.projects.serviceAccounts.keys.create", "path": "v1/{+name}/keys", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys", "httpMethod": "POST", "description": "Creates a ServiceAccountKey\nand returns it.", "parameters": { "name": { "description": "The resource name of the service account in the following format:\n`projects\/{project}\/serviceAccounts\/{account}`.\nUsing `-` as a wildcard for the project will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "name" ], "request": { "$ref": "CreateServiceAccountKeyRequest" }, "response": { "$ref": "ServiceAccountKey" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] }, "delete": { "id": "iam.projects.serviceAccounts.keys.delete", "path": "v1/{+name}", "flatPath": "v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}", "httpMethod": "DELETE", "description": "Deletes a ServiceAccountKey.", "parameters": { "name": { "description": "The resource name of the service account key in the following format:\n`projects\/{project}\/serviceAccounts\/{account}\/keys\/{key}`.\nUsing `-` as a wildcard for the project will infer the project from\nthe account. The `account` value can be the `email` address or the\n`unique_id` of the service account.", "location": "path", "required": true, "pattern": "^projects\/[^\/]*\/serviceAccounts\/[^\/]*\/keys\/[^\/]*$", "type": "string" } }, "parameterOrder": [ "name" ], "response": { "$ref": "Empty" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] } } } } } } }, "roles": { "methods": { "queryGrantableRoles": { "id": "iam.roles.queryGrantableRoles", "path": "v1/roles:queryGrantableRoles", "flatPath": "v1/roles:queryGrantableRoles", "httpMethod": "POST", "description": "Queries roles that can be granted on a particular resource.", "parameters": { }, "parameterOrder": [ ], "request": { "$ref": "QueryGrantableRolesRequest" }, "response": { "$ref": "QueryGrantableRolesResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] } } }, "iamPolicies": { "methods": { "getPolicyDetails": { "id": "iam.iamPolicies.getPolicyDetails", "path": "v1/iamPolicies:getPolicyDetails", "flatPath": "v1/iamPolicies:getPolicyDetails", "httpMethod": "POST", "description": "Returns the current IAM policy and the policies on the inherited resources\nthat the user has access to.", "parameters": { }, "parameterOrder": [ ], "request": { "$ref": "GetPolicyDetailsRequest" }, "response": { "$ref": "GetPolicyDetailsResponse" }, "scopes": [ "https://www.googleapis.com/auth/cloud-platform" ] } } } }, "basePath": "" } PK Ӄ�Z�]qh= = iam_client_test.pynu �[��� # # Copyright 2016 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """Test for generated sample module.""" import unittest import six from apitools.base.py.testing import mock from samples.iam_sample.iam_v1 import iam_v1_client # nopep8 from samples.iam_sample.iam_v1 import iam_v1_messages # nopep8 class DnsGenClientSanityTest(unittest.TestCase): def testBaseUrl(self): self.assertEqual(u'https://iam.googleapis.com/', iam_v1_client.IamV1.BASE_URL) def testMessagesModule(self): self.assertEqual(iam_v1_messages, iam_v1_client.IamV1.MESSAGES_MODULE) def testAttributes(self): inner_classes = set([]) for key, value in iam_v1_client.IamV1.__dict__.items(): if isinstance(value, six.class_types): inner_classes.add(key) self.assertEqual(set([ 'IamPoliciesService', 'ProjectsService', 'ProjectsServiceAccountsKeysService', 'ProjectsServiceAccountsService', 'RolesService']), inner_classes) class IamGenClientTest(unittest.TestCase): def setUp(self): self.mocked_iam_v1 = mock.Client(iam_v1_client.IamV1) self.mocked_iam_v1.Mock() self.addCleanup(self.mocked_iam_v1.Unmock) def testFlatPath(self): get_method_config = (self.mocked_iam_v1.projects_serviceAccounts_keys .GetMethodConfig('Get')) self.assertEqual('v1/projects/{projectsId}/serviceAccounts' '/{serviceAccountsId}/keys/{keysId}', get_method_config.flat_path) self.assertEqual('v1/{+name}', get_method_config.relative_path) def testServiceAccountsKeysList(self): response_key = iam_v1_messages.ServiceAccountKey( name=u'test-key') self.mocked_iam_v1.projects_serviceAccounts_keys.List.Expect( iam_v1_messages.IamProjectsServiceAccountsKeysListRequest( name=u'test-service-account.'), iam_v1_messages.ListServiceAccountKeysResponse( keys=[response_key])) result = self.mocked_iam_v1.projects_serviceAccounts_keys.List( iam_v1_messages.IamProjectsServiceAccountsKeysListRequest( name=u'test-service-account.')) self.assertEqual([response_key], result.keys) PK Ӄ�Z0�� -O -O iam_v1/iam_v1_client.pynu �[��� """Generated client library for iam version v1.""" # NOTE: This file is autogenerated and should not be edited by hand. from __future__ import absolute_import from apitools.base.py import base_api from samples.iam_sample.iam_v1 import iam_v1_messages as messages class IamV1(base_api.BaseApiClient): """Generated client library for service iam version v1.""" MESSAGES_MODULE = messages BASE_URL = 'https://iam.googleapis.com/' MTLS_BASE_URL = '' _PACKAGE = 'iam' _SCOPES = ['https://www.googleapis.com/auth/cloud-platform'] _VERSION = 'v1' _CLIENT_ID = 'CLIENT_ID' _CLIENT_SECRET = 'CLIENT_SECRET' _USER_AGENT = 'x_Tw5K8nnjoRAqULM9PFAC2b' _CLIENT_CLASS_NAME = 'IamV1' _URL_VERSION = 'v1' _API_KEY = None def __init__(self, url='', credentials=None, get_credentials=True, http=None, model=None, log_request=False, log_response=False, credentials_args=None, default_global_params=None, additional_http_headers=None, response_encoding=None): """Create a new iam handle.""" url = url or self.BASE_URL super(IamV1, self).__init__( url, credentials=credentials, get_credentials=get_credentials, http=http, model=model, log_request=log_request, log_response=log_response, credentials_args=credentials_args, default_global_params=default_global_params, additional_http_headers=additional_http_headers, response_encoding=response_encoding) self.iamPolicies = self.IamPoliciesService(self) self.projects_serviceAccounts_keys = self.ProjectsServiceAccountsKeysService(self) self.projects_serviceAccounts = self.ProjectsServiceAccountsService(self) self.projects = self.ProjectsService(self) self.roles = self.RolesService(self) class IamPoliciesService(base_api.BaseApiService): """Service class for the iamPolicies resource.""" _NAME = 'iamPolicies' def __init__(self, client): super(IamV1.IamPoliciesService, self).__init__(client) self._upload_configs = { } def GetPolicyDetails(self, request, global_params=None): r"""Returns the current IAM policy and the policies on the inherited resources. that the user has access to. Args: request: (GetPolicyDetailsRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (GetPolicyDetailsResponse) The response message. """ config = self.GetMethodConfig('GetPolicyDetails') return self._RunMethod( config, request, global_params=global_params) GetPolicyDetails.method_config = lambda: base_api.ApiMethodInfo( http_method='POST', method_id='iam.iamPolicies.getPolicyDetails', ordered_params=[], path_params=[], query_params=[], relative_path='v1/iamPolicies:getPolicyDetails', request_field='<request>', request_type_name='GetPolicyDetailsRequest', response_type_name='GetPolicyDetailsResponse', supports_download=False, ) class ProjectsServiceAccountsKeysService(base_api.BaseApiService): """Service class for the projects_serviceAccounts_keys resource.""" _NAME = 'projects_serviceAccounts_keys' def __init__(self, client): super(IamV1.ProjectsServiceAccountsKeysService, self).__init__(client) self._upload_configs = { } def Create(self, request, global_params=None): r"""Creates a ServiceAccountKey. and returns it. Args: request: (IamProjectsServiceAccountsKeysCreateRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (ServiceAccountKey) The response message. """ config = self.GetMethodConfig('Create') return self._RunMethod( config, request, global_params=global_params) Create.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys', http_method='POST', method_id='iam.projects.serviceAccounts.keys.create', ordered_params=['name'], path_params=['name'], query_params=[], relative_path='v1/{+name}/keys', request_field='createServiceAccountKeyRequest', request_type_name='IamProjectsServiceAccountsKeysCreateRequest', response_type_name='ServiceAccountKey', supports_download=False, ) def Delete(self, request, global_params=None): r"""Deletes a ServiceAccountKey. Args: request: (IamProjectsServiceAccountsKeysDeleteRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (Empty) The response message. """ config = self.GetMethodConfig('Delete') return self._RunMethod( config, request, global_params=global_params) Delete.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}', http_method='DELETE', method_id='iam.projects.serviceAccounts.keys.delete', ordered_params=['name'], path_params=['name'], query_params=[], relative_path='v1/{+name}', request_field='', request_type_name='IamProjectsServiceAccountsKeysDeleteRequest', response_type_name='Empty', supports_download=False, ) def Get(self, request, global_params=None): r"""Gets the ServiceAccountKey. by key id. Args: request: (IamProjectsServiceAccountsKeysGetRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (ServiceAccountKey) The response message. """ config = self.GetMethodConfig('Get') return self._RunMethod( config, request, global_params=global_params) Get.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys/{keysId}', http_method='GET', method_id='iam.projects.serviceAccounts.keys.get', ordered_params=['name'], path_params=['name'], query_params=['publicKeyType'], relative_path='v1/{+name}', request_field='', request_type_name='IamProjectsServiceAccountsKeysGetRequest', response_type_name='ServiceAccountKey', supports_download=False, ) def List(self, request, global_params=None): r"""Lists ServiceAccountKeys. Args: request: (IamProjectsServiceAccountsKeysListRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (ListServiceAccountKeysResponse) The response message. """ config = self.GetMethodConfig('List') return self._RunMethod( config, request, global_params=global_params) List.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}/keys', http_method='GET', method_id='iam.projects.serviceAccounts.keys.list', ordered_params=['name'], path_params=['name'], query_params=['keyTypes'], relative_path='v1/{+name}/keys', request_field='', request_type_name='IamProjectsServiceAccountsKeysListRequest', response_type_name='ListServiceAccountKeysResponse', supports_download=False, ) class ProjectsServiceAccountsService(base_api.BaseApiService): """Service class for the projects_serviceAccounts resource.""" _NAME = 'projects_serviceAccounts' def __init__(self, client): super(IamV1.ProjectsServiceAccountsService, self).__init__(client) self._upload_configs = { } def Create(self, request, global_params=None): r"""Creates a ServiceAccount. and returns it. Args: request: (IamProjectsServiceAccountsCreateRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (ServiceAccount) The response message. """ config = self.GetMethodConfig('Create') return self._RunMethod( config, request, global_params=global_params) Create.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts', http_method='POST', method_id='iam.projects.serviceAccounts.create', ordered_params=['name'], path_params=['name'], query_params=[], relative_path='v1/{+name}/serviceAccounts', request_field='createServiceAccountRequest', request_type_name='IamProjectsServiceAccountsCreateRequest', response_type_name='ServiceAccount', supports_download=False, ) def Delete(self, request, global_params=None): r"""Deletes a ServiceAccount. Args: request: (IamProjectsServiceAccountsDeleteRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (Empty) The response message. """ config = self.GetMethodConfig('Delete') return self._RunMethod( config, request, global_params=global_params) Delete.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}', http_method='DELETE', method_id='iam.projects.serviceAccounts.delete', ordered_params=['name'], path_params=['name'], query_params=[], relative_path='v1/{+name}', request_field='', request_type_name='IamProjectsServiceAccountsDeleteRequest', response_type_name='Empty', supports_download=False, ) def Get(self, request, global_params=None): r"""Gets a ServiceAccount. Args: request: (IamProjectsServiceAccountsGetRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (ServiceAccount) The response message. """ config = self.GetMethodConfig('Get') return self._RunMethod( config, request, global_params=global_params) Get.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}', http_method='GET', method_id='iam.projects.serviceAccounts.get', ordered_params=['name'], path_params=['name'], query_params=[], relative_path='v1/{+name}', request_field='', request_type_name='IamProjectsServiceAccountsGetRequest', response_type_name='ServiceAccount', supports_download=False, ) def GetIamPolicy(self, request, global_params=None): r"""Returns the IAM access control policy for specified IAM resource. Args: request: (IamProjectsServiceAccountsGetIamPolicyRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (Policy) The response message. """ config = self.GetMethodConfig('GetIamPolicy') return self._RunMethod( config, request, global_params=global_params) GetIamPolicy.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:getIamPolicy', http_method='POST', method_id='iam.projects.serviceAccounts.getIamPolicy', ordered_params=['resource'], path_params=['resource'], query_params=['options_requestedPolicyVersion'], relative_path='v1/{+resource}:getIamPolicy', request_field='', request_type_name='IamProjectsServiceAccountsGetIamPolicyRequest', response_type_name='Policy', supports_download=False, ) def List(self, request, global_params=None): r"""Lists ServiceAccounts for a project. Args: request: (IamProjectsServiceAccountsListRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (ListServiceAccountsResponse) The response message. """ config = self.GetMethodConfig('List') return self._RunMethod( config, request, global_params=global_params) List.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts', http_method='GET', method_id='iam.projects.serviceAccounts.list', ordered_params=['name'], path_params=['name'], query_params=['pageSize', 'pageToken', 'removeDeletedServiceAccounts'], relative_path='v1/{+name}/serviceAccounts', request_field='', request_type_name='IamProjectsServiceAccountsListRequest', response_type_name='ListServiceAccountsResponse', supports_download=False, ) def SetIamPolicy(self, request, global_params=None): r"""Sets the IAM access control policy for the specified IAM resource. Args: request: (IamProjectsServiceAccountsSetIamPolicyRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (Policy) The response message. """ config = self.GetMethodConfig('SetIamPolicy') return self._RunMethod( config, request, global_params=global_params) SetIamPolicy.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:setIamPolicy', http_method='POST', method_id='iam.projects.serviceAccounts.setIamPolicy', ordered_params=['resource'], path_params=['resource'], query_params=[], relative_path='v1/{+resource}:setIamPolicy', request_field='setIamPolicyRequest', request_type_name='IamProjectsServiceAccountsSetIamPolicyRequest', response_type_name='Policy', supports_download=False, ) def SignBlob(self, request, global_params=None): r"""Signs a blob using a service account's system-managed private key. Args: request: (IamProjectsServiceAccountsSignBlobRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (SignBlobResponse) The response message. """ config = self.GetMethodConfig('SignBlob') return self._RunMethod( config, request, global_params=global_params) SignBlob.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signBlob', http_method='POST', method_id='iam.projects.serviceAccounts.signBlob', ordered_params=['name'], path_params=['name'], query_params=[], relative_path='v1/{+name}:signBlob', request_field='signBlobRequest', request_type_name='IamProjectsServiceAccountsSignBlobRequest', response_type_name='SignBlobResponse', supports_download=False, ) def SignJwt(self, request, global_params=None): r"""Signs a JWT using a service account's system-managed private key. If no `exp` (expiry) time is contained in the claims, we will provide an expiry of one hour in the future. If an expiry of more than one hour in the future is requested, the request will fail. Args: request: (IamProjectsServiceAccountsSignJwtRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (SignJwtResponse) The response message. """ config = self.GetMethodConfig('SignJwt') return self._RunMethod( config, request, global_params=global_params) SignJwt.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:signJwt', http_method='POST', method_id='iam.projects.serviceAccounts.signJwt', ordered_params=['name'], path_params=['name'], query_params=[], relative_path='v1/{+name}:signJwt', request_field='signJwtRequest', request_type_name='IamProjectsServiceAccountsSignJwtRequest', response_type_name='SignJwtResponse', supports_download=False, ) def TestIamPermissions(self, request, global_params=None): r"""Tests the specified permissions against the IAM access control policy. for the specified IAM resource. Args: request: (IamProjectsServiceAccountsTestIamPermissionsRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (TestIamPermissionsResponse) The response message. """ config = self.GetMethodConfig('TestIamPermissions') return self._RunMethod( config, request, global_params=global_params) TestIamPermissions.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}:testIamPermissions', http_method='POST', method_id='iam.projects.serviceAccounts.testIamPermissions', ordered_params=['resource'], path_params=['resource'], query_params=[], relative_path='v1/{+resource}:testIamPermissions', request_field='testIamPermissionsRequest', request_type_name='IamProjectsServiceAccountsTestIamPermissionsRequest', response_type_name='TestIamPermissionsResponse', supports_download=False, ) def Update(self, request, global_params=None): r"""Updates a ServiceAccount. Currently, only the following fields are updatable: `display_name` . The `etag` is mandatory. Args: request: (ServiceAccount) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (ServiceAccount) The response message. """ config = self.GetMethodConfig('Update') return self._RunMethod( config, request, global_params=global_params) Update.method_config = lambda: base_api.ApiMethodInfo( flat_path='v1/projects/{projectsId}/serviceAccounts/{serviceAccountsId}', http_method='PUT', method_id='iam.projects.serviceAccounts.update', ordered_params=['name'], path_params=['name'], query_params=[], relative_path='v1/{+name}', request_field='<request>', request_type_name='ServiceAccount', response_type_name='ServiceAccount', supports_download=False, ) class ProjectsService(base_api.BaseApiService): """Service class for the projects resource.""" _NAME = 'projects' def __init__(self, client): super(IamV1.ProjectsService, self).__init__(client) self._upload_configs = { } class RolesService(base_api.BaseApiService): """Service class for the roles resource.""" _NAME = 'roles' def __init__(self, client): super(IamV1.RolesService, self).__init__(client) self._upload_configs = { } def QueryGrantableRoles(self, request, global_params=None): r"""Queries roles that can be granted on a particular resource. Args: request: (QueryGrantableRolesRequest) input message global_params: (StandardQueryParameters, default: None) global arguments Returns: (QueryGrantableRolesResponse) The response message. """ config = self.GetMethodConfig('QueryGrantableRoles') return self._RunMethod( config, request, global_params=global_params) QueryGrantableRoles.method_config = lambda: base_api.ApiMethodInfo( http_method='POST', method_id='iam.roles.queryGrantableRoles', ordered_params=[], path_params=[], query_params=[], relative_path='v1/roles:queryGrantableRoles', request_field='<request>', request_type_name='QueryGrantableRolesRequest', response_type_name='QueryGrantableRolesResponse', supports_download=False, ) PK Ӄ�Z��o� o� iam_v1/iam_v1_messages.pynu �[��� """Generated message classes for iam version v1. Manages identity and access control for Google Cloud Platform resources, including the creation of service accounts, which you can use to authenticate to Google and make API calls. """ # NOTE: This file is autogenerated and should not be edited by hand. from __future__ import absolute_import from apitools.base.protorpclite import messages as _messages from apitools.base.py import encoding package = 'iam' class AuditConfig(_messages.Message): r"""Enables "data access" audit logging for a service and specifies a list of members that are log-exempted. Fields: exemptedMembers: Specifies the identities that are exempted from "data access" audit logging for the `service` specified above. Follows the same format of Binding.members. service: Specifies a service that will be enabled for "data access" audit logging. For example, `resourcemanager`, `storage`, `compute`. `allServices` is a special value that covers all services. """ exemptedMembers = _messages.StringField(1, repeated=True) service = _messages.StringField(2) class Binding(_messages.Message): r"""Associates `members` with a `role`. Fields: members: Specifies the identities requesting access for a Cloud Platform resource. `members` can have the following values: * `allUsers`: A special identifier that represents anyone who is on the internet; with or without a Google account. * `allAuthenticatedUsers`: A special identifier that represents anyone who is authenticated with a Google account or a service account. * `user:{emailid}`: An email address that represents a specific Google account. For example, `alice@gmail.com` or `joe@example.com`. * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `my-other- app@appspot.gserviceaccount.com`. * `group:{emailid}`: An email address that represents a Google group. For example, `admins@example.com`. * `domain:{domain}`: A Google Apps domain name that represents all the users of that domain. For example, `google.com` or `example.com`. role: Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`. Required """ members = _messages.StringField(1, repeated=True) role = _messages.StringField(2) class CloudAuditOptions(_messages.Message): r"""Write a Cloud Audit log""" class Condition(_messages.Message): r"""A condition to be met. Enums: IamValueValuesEnum: Trusted attributes supplied by the IAM system. OpValueValuesEnum: An operator to apply the subject with. SysValueValuesEnum: Trusted attributes supplied by any service that owns resources and uses the IAM system for access control. Fields: iam: Trusted attributes supplied by the IAM system. op: An operator to apply the subject with. svc: Trusted attributes discharged by the service. sys: Trusted attributes supplied by any service that owns resources and uses the IAM system for access control. value: DEPRECATED. Use 'values' instead. values: The objects of the condition. This is mutually exclusive with 'value'. """ class IamValueValuesEnum(_messages.Enum): r"""Trusted attributes supplied by the IAM system. Values: NO_ATTR: Default non-attribute. AUTHORITY: Either principal or (if present) authority ATTRIBUTION: selector Always the original principal, but making clear """ NO_ATTR = 0 AUTHORITY = 1 ATTRIBUTION = 2 class OpValueValuesEnum(_messages.Enum): r"""An operator to apply the subject with. Values: NO_OP: Default no-op. EQUALS: DEPRECATED. Use IN instead. NOT_EQUALS: DEPRECATED. Use NOT_IN instead. IN: Set-inclusion check. NOT_IN: Set-exclusion check. DISCHARGED: Subject is discharged """ NO_OP = 0 EQUALS = 1 NOT_EQUALS = 2 IN = 3 NOT_IN = 4 DISCHARGED = 5 class SysValueValuesEnum(_messages.Enum): r"""Trusted attributes supplied by any service that owns resources and uses the IAM system for access control. Values: NO_ATTR: Default non-attribute type REGION: Region of the resource SERVICE: Service name NAME: Resource name IP: IP address of the caller """ NO_ATTR = 0 REGION = 1 SERVICE = 2 NAME = 3 IP = 4 iam = _messages.EnumField('IamValueValuesEnum', 1) op = _messages.EnumField('OpValueValuesEnum', 2) svc = _messages.StringField(3) sys = _messages.EnumField('SysValueValuesEnum', 4) value = _messages.StringField(5) values = _messages.StringField(6, repeated=True) class CounterOptions(_messages.Message): r"""Options for counters Fields: field: The field value to attribute. metric: The metric to update. """ field = _messages.StringField(1) metric = _messages.StringField(2) class CreateServiceAccountKeyRequest(_messages.Message): r"""The service account key create request. Enums: PrivateKeyTypeValueValuesEnum: The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the default output format. Fields: privateKeyType: The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the default output format. """ class PrivateKeyTypeValueValuesEnum(_messages.Enum): r"""The output format of the private key. `GOOGLE_CREDENTIALS_FILE` is the default output format. Values: TYPE_UNSPECIFIED: Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`. TYPE_PKCS12_FILE: PKCS12 format. The password for the PKCS12 file is `notasecret`. For more information, see https://tools.ietf.org/html/rfc7292. TYPE_GOOGLE_CREDENTIALS_FILE: Google Credentials File format. """ TYPE_UNSPECIFIED = 0 TYPE_PKCS12_FILE = 1 TYPE_GOOGLE_CREDENTIALS_FILE = 2 privateKeyType = _messages.EnumField('PrivateKeyTypeValueValuesEnum', 1) class CreateServiceAccountRequest(_messages.Message): r"""The service account create request. Fields: accountId: Required. The account id that is used to generate the service account email address and a stable unique id. It is unique within a project, must be 1-63 characters long, and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])` to comply with RFC1035. serviceAccount: The ServiceAccount resource to create. Currently, only the following values are user assignable: `display_name` . """ accountId = _messages.StringField(1) serviceAccount = _messages.MessageField('ServiceAccount', 2) class DataAccessOptions(_messages.Message): r"""Write a Data Access (Gin) log""" class Empty(_messages.Message): r"""A generic empty message that you can re-use to avoid defining duplicated empty messages in your APIs. A typical example is to use it as the request or the response type of an API method. For instance: service Foo { rpc Bar(google.protobuf.Empty) returns (google.protobuf.Empty); } The JSON representation for `Empty` is empty JSON object `{}`. """ class GetPolicyDetailsRequest(_messages.Message): r"""The request to get the current policy and the policies on the inherited resources the user has access to. Fields: fullResourcePath: REQUIRED: The full resource path of the current policy being requested, e.g., `//dataflow.googleapis.com/projects/../jobs/..`. pageSize: Limit on the number of policies to include in the response. Further accounts can subsequently be obtained by including the GetPolicyDetailsResponse.next_page_token in a subsequent request. If zero, the default page size 20 will be used. Must be given a value in range [0, 100], otherwise an invalid argument error will be returned. pageToken: Optional pagination token returned in an earlier GetPolicyDetailsResponse.next_page_token response. """ fullResourcePath = _messages.StringField(1) pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32) pageToken = _messages.StringField(3) class GetPolicyDetailsResponse(_messages.Message): r"""The response to the `GetPolicyDetailsRequest` containing the current policy and the policies on the inherited resources the user has access to. Fields: nextPageToken: To retrieve the next page of results, set GetPolicyDetailsRequest.page_token to this value. If this value is empty, then there are not any further policies that the user has access to. The lifetime is 60 minutes. An "Expired pagination token" error will be returned if exceeded. policies: The current policy and all the inherited policies the user has access to. """ nextPageToken = _messages.StringField(1) policies = _messages.MessageField('PolicyDetail', 2, repeated=True) class IamProjectsServiceAccountsCreateRequest(_messages.Message): r"""A IamProjectsServiceAccountsCreateRequest object. Fields: createServiceAccountRequest: A CreateServiceAccountRequest resource to be passed as the request body. name: Required. The resource name of the project associated with the service accounts, such as `projects/my-project-123`. """ createServiceAccountRequest = _messages.MessageField('CreateServiceAccountRequest', 1) name = _messages.StringField(2, required=True) class IamProjectsServiceAccountsDeleteRequest(_messages.Message): r"""A IamProjectsServiceAccountsDeleteRequest object. Fields: name: The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. """ name = _messages.StringField(1, required=True) class IamProjectsServiceAccountsGetIamPolicyRequest(_messages.Message): r"""A IamProjectsServiceAccountsGetIamPolicyRequest object. Fields: options_requestedPolicyVersion: Optional. The policy format version to be returned. Acceptable values are 0 and 1. If the value is 0, or the field is omitted, policy format version 1 will be returned. resource: REQUIRED: The resource for which the policy is being requested. `resource` is usually specified as a path, such as `projects/*project*/zones/*zone*/disks/*disk*`. The format for the path specified in this value is resource specific and is specified in the `getIamPolicy` documentation. """ options_requestedPolicyVersion = _messages.IntegerField(1, variant=_messages.Variant.INT32) resource = _messages.StringField(2, required=True) class IamProjectsServiceAccountsGetRequest(_messages.Message): r"""A IamProjectsServiceAccountsGetRequest object. Fields: name: The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. """ name = _messages.StringField(1, required=True) class IamProjectsServiceAccountsKeysCreateRequest(_messages.Message): r"""A IamProjectsServiceAccountsKeysCreateRequest object. Fields: createServiceAccountKeyRequest: A CreateServiceAccountKeyRequest resource to be passed as the request body. name: The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. """ createServiceAccountKeyRequest = _messages.MessageField('CreateServiceAccountKeyRequest', 1) name = _messages.StringField(2, required=True) class IamProjectsServiceAccountsKeysDeleteRequest(_messages.Message): r"""A IamProjectsServiceAccountsKeysDeleteRequest object. Fields: name: The resource name of the service account key in the following format: `projects/{project}/serviceAccounts/{account}/keys/{key}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. """ name = _messages.StringField(1, required=True) class IamProjectsServiceAccountsKeysGetRequest(_messages.Message): r"""A IamProjectsServiceAccountsKeysGetRequest object. Enums: PublicKeyTypeValueValuesEnum: The output format of the public key requested. X509_PEM is the default output format. Fields: name: The resource name of the service account key in the following format: `projects/{project}/serviceAccounts/{account}/keys/{key}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. publicKeyType: The output format of the public key requested. X509_PEM is the default output format. """ class PublicKeyTypeValueValuesEnum(_messages.Enum): r"""The output format of the public key requested. X509_PEM is the default output format. Values: TYPE_NONE: <no description> TYPE_X509_PEM_FILE: <no description> TYPE_RAW_PUBLIC_KEY: <no description> """ TYPE_NONE = 0 TYPE_X509_PEM_FILE = 1 TYPE_RAW_PUBLIC_KEY = 2 name = _messages.StringField(1, required=True) publicKeyType = _messages.EnumField('PublicKeyTypeValueValuesEnum', 2) class IamProjectsServiceAccountsKeysListRequest(_messages.Message): r"""A IamProjectsServiceAccountsKeysListRequest object. Enums: KeyTypesValueValuesEnum: Filters the types of keys the user wants to include in the list response. Duplicate key types are not allowed. If no key type is provided, all keys are returned. Fields: keyTypes: Filters the types of keys the user wants to include in the list response. Duplicate key types are not allowed. If no key type is provided, all keys are returned. name: The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project, will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. """ class KeyTypesValueValuesEnum(_messages.Enum): r"""Filters the types of keys the user wants to include in the list response. Duplicate key types are not allowed. If no key type is provided, all keys are returned. Values: KEY_TYPE_UNSPECIFIED: <no description> USER_MANAGED: <no description> SYSTEM_MANAGED: <no description> """ KEY_TYPE_UNSPECIFIED = 0 USER_MANAGED = 1 SYSTEM_MANAGED = 2 keyTypes = _messages.EnumField('KeyTypesValueValuesEnum', 1, repeated=True) name = _messages.StringField(2, required=True) class IamProjectsServiceAccountsListRequest(_messages.Message): r"""A IamProjectsServiceAccountsListRequest object. Fields: name: Required. The resource name of the project associated with the service accounts, such as `projects/my-project-123`. pageSize: Optional limit on the number of service accounts to include in the response. Further accounts can subsequently be obtained by including the ListServiceAccountsResponse.next_page_token in a subsequent request. pageToken: Optional pagination token returned in an earlier ListServiceAccountsResponse.next_page_token. removeDeletedServiceAccounts: Do not list service accounts deleted from Gaia. <b><font color="red">DO NOT INCLUDE IN EXTERNAL DOCUMENTATION</font></b>. """ name = _messages.StringField(1, required=True) pageSize = _messages.IntegerField(2, variant=_messages.Variant.INT32) pageToken = _messages.StringField(3) removeDeletedServiceAccounts = _messages.BooleanField(4) class IamProjectsServiceAccountsSetIamPolicyRequest(_messages.Message): r"""A IamProjectsServiceAccountsSetIamPolicyRequest object. Fields: resource: REQUIRED: The resource for which the policy is being specified. `resource` is usually specified as a path, such as `projects/*project*/zones/*zone*/disks/*disk*`. The format for the path specified in this value is resource specific and is specified in the `setIamPolicy` documentation. setIamPolicyRequest: A SetIamPolicyRequest resource to be passed as the request body. """ resource = _messages.StringField(1, required=True) setIamPolicyRequest = _messages.MessageField('SetIamPolicyRequest', 2) class IamProjectsServiceAccountsSignBlobRequest(_messages.Message): r"""A IamProjectsServiceAccountsSignBlobRequest object. Fields: name: The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. signBlobRequest: A SignBlobRequest resource to be passed as the request body. """ name = _messages.StringField(1, required=True) signBlobRequest = _messages.MessageField('SignBlobRequest', 2) class IamProjectsServiceAccountsSignJwtRequest(_messages.Message): r"""A IamProjectsServiceAccountsSignJwtRequest object. Fields: name: The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. signJwtRequest: A SignJwtRequest resource to be passed as the request body. """ name = _messages.StringField(1, required=True) signJwtRequest = _messages.MessageField('SignJwtRequest', 2) class IamProjectsServiceAccountsTestIamPermissionsRequest(_messages.Message): r"""A IamProjectsServiceAccountsTestIamPermissionsRequest object. Fields: resource: REQUIRED: The resource for which the policy detail is being requested. `resource` is usually specified as a path, such as `projects/*project*/zones/*zone*/disks/*disk*`. The format for the path specified in this value is resource specific and is specified in the `testIamPermissions` documentation. testIamPermissionsRequest: A TestIamPermissionsRequest resource to be passed as the request body. """ resource = _messages.StringField(1, required=True) testIamPermissionsRequest = _messages.MessageField('TestIamPermissionsRequest', 2) class ListServiceAccountKeysResponse(_messages.Message): r"""The service account keys list response. Fields: keys: The public keys for the service account. """ keys = _messages.MessageField('ServiceAccountKey', 1, repeated=True) class ListServiceAccountsResponse(_messages.Message): r"""The service account list response. Fields: accounts: The list of matching service accounts. nextPageToken: To retrieve the next page of results, set ListServiceAccountsRequest.page_token to this value. """ accounts = _messages.MessageField('ServiceAccount', 1, repeated=True) nextPageToken = _messages.StringField(2) class LogConfig(_messages.Message): r"""Specifies what kind of log the caller must write Increment a streamz counter with the specified metric and field names. Metric names should start with a '/', generally be lowercase-only, and end in "_count". Field names should not contain an initial slash. The actual exported metric names will have "/iam/policy" prepended. Field names correspond to IAM request parameters and field values are their respective values. At present the only supported field names are - "iam_principal", corresponding to IAMContext.principal; - "" (empty string), resulting in one aggretated counter with no field. Examples: counter { metric: "/debug_access_count" field: "iam_principal" } ==> increment counter /iam/policy/backend_debug_access_count {iam_principal=[value of IAMContext.principal]} At this time we do not support: * multiple field names (though this may be supported in the future) * decrementing the counter * incrementing it by anything other than 1 Fields: cloudAudit: Cloud audit options. counter: Counter options. dataAccess: Data access options. """ cloudAudit = _messages.MessageField('CloudAuditOptions', 1) counter = _messages.MessageField('CounterOptions', 2) dataAccess = _messages.MessageField('DataAccessOptions', 3) class Policy(_messages.Message): r"""Defines an Identity and Access Management (IAM) policy. It is used to specify access control policies for Cloud Platform resources. A `Policy` consists of a list of `bindings`. A `Binding` binds a list of `members` to a `role`, where the members can be user accounts, Google groups, Google domains, and service accounts. A `role` is a named list of permissions defined by IAM. **Example** { "bindings": [ { "role": "roles/owner", "members": [ "user:mike@example.com", "group:admins@example.com", "domain:google.com", "serviceAccount:my-other- app@appspot.gserviceaccount.com", ] }, { "role": "roles/viewer", "members": ["user:sean@example.com"] } ] } For a description of IAM and its features, see the [IAM developer's guide](https://cloud.google.com/iam). Fields: auditConfigs: Specifies audit logging configs for "data access". "data access": generally refers to data reads/writes and admin reads. "admin activity": generally refers to admin writes. Note: `AuditConfig` doesn't apply to "admin activity", which always enables audit logging. bindings: Associates a list of `members` to a `role`. Multiple `bindings` must not be specified for the same `role`. `bindings` with no members will result in an error. etag: `etag` is used for optimistic concurrency control as a way to help prevent simultaneous updates of a policy from overwriting each other. It is strongly suggested that systems make use of the `etag` in the read- modify-write cycle to perform policy updates in order to avoid race conditions: An `etag` is returned in the response to `getIamPolicy`, and systems are expected to put that etag in the request to `setIamPolicy` to ensure that their change will be applied to the same version of the policy. If no `etag` is provided in the call to `setIamPolicy`, then the existing policy is overwritten blindly. iamOwned: A boolean attribute. rules: If more than one rule is specified, the rules are applied in the following manner: - All matching LOG rules are always applied. - If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging will be applied if one or more matching rule requires logging. - Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is granted. Logging will be applied if one or more matching rule requires logging. - Otherwise, if no rule applies, permission is denied. version: Version of the `Policy`. The default version is 0. """ auditConfigs = _messages.MessageField('AuditConfig', 1, repeated=True) bindings = _messages.MessageField('Binding', 2, repeated=True) etag = _messages.BytesField(3) iamOwned = _messages.BooleanField(4) rules = _messages.MessageField('Rule', 5, repeated=True) version = _messages.IntegerField(6, variant=_messages.Variant.INT32) class PolicyDetail(_messages.Message): r"""A policy and its full resource path. Fields: fullResourcePath: The full resource path of the policy e.g., `//dataflow.googleapis.com/projects/../jobs/..`. Note that a resource and its inherited resource have different `full_resource_path`. policy: The policy of a `resource/project/folder`. """ fullResourcePath = _messages.StringField(1) policy = _messages.MessageField('Policy', 2) class QueryGrantableRolesRequest(_messages.Message): r"""The grantable role query request. Fields: fullResourceName: Required. The full resource name to query from the list of grantable roles. The name follows the Google Cloud Platform resource format. For example, a Cloud Platform project with id `my-project` will be named `//cloudresourcemanager.googleapis.com/projects/my-project`. """ fullResourceName = _messages.StringField(1) class QueryGrantableRolesResponse(_messages.Message): r"""The grantable role query response. Fields: roles: The list of matching roles. """ roles = _messages.MessageField('Role', 1, repeated=True) class Role(_messages.Message): r"""A role in the Identity and Access Management API. Fields: apiTokens: A string attribute. description: Optional. A human-readable description for the role. name: The name of the role. Examples of roles names are: `roles/editor`, `roles/viewer` and `roles/logging.viewer`. title: Optional. A human-readable title for the role. Typically this is limited to 100 UTF-8 bytes. """ apiTokens = _messages.StringField(1, repeated=True) description = _messages.StringField(2) name = _messages.StringField(3) title = _messages.StringField(4) class Rule(_messages.Message): r"""A rule to be applied in a Policy. Enums: ActionValueValuesEnum: Required Fields: action: Required conditions: Additional restrictions that must be met description: Human-readable description of the rule. in_: If one or more 'in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries. logConfig: The config returned to callers of tech.iam.IAM.CheckPolicy for any entries that match the LOG action. notIn: If one or more 'not_in' clauses are specified, the rule matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the entries. The format for in and not_in entries is the same as for members in a Binding (see google/iam/v1/policy.proto). permissions: A permission is a string of form '<service>.<resource type>.<verb>' (e.g., 'storage.buckets.list'). A value of '*' matches all permissions, and a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs. """ class ActionValueValuesEnum(_messages.Enum): r"""Required Values: NO_ACTION: Default no action. ALLOW: Matching 'Entries' grant access. ALLOW_WITH_LOG: Matching 'Entries' grant access and the caller promises to log the request per the returned log_configs. DENY: Matching 'Entries' deny access. DENY_WITH_LOG: Matching 'Entries' deny access and the caller promises to log the request per the returned log_configs. LOG: Matching 'Entries' tell IAM.Check callers to generate logs. """ NO_ACTION = 0 ALLOW = 1 ALLOW_WITH_LOG = 2 DENY = 3 DENY_WITH_LOG = 4 LOG = 5 action = _messages.EnumField('ActionValueValuesEnum', 1) conditions = _messages.MessageField('Condition', 2, repeated=True) description = _messages.StringField(3) in_ = _messages.StringField(4, repeated=True) logConfig = _messages.MessageField('LogConfig', 5, repeated=True) notIn = _messages.StringField(6, repeated=True) permissions = _messages.StringField(7, repeated=True) class ServiceAccount(_messages.Message): r"""A service account in the Identity and Access Management API. To create a service account, specify the `project_id` and the `account_id` for the account. The `account_id` is unique within the project, and is used to generate the service account email address and a stable `unique_id`. All other methods can identify the service account using the format `projects/{project}/serviceAccounts/{account}`. Using `-` as a wildcard for the project will infer the project from the account. The `account` value can be the `email` address or the `unique_id` of the service account. Fields: description: Optional. A user-specified opaque description of the service account. displayName: Optional. A user-specified description of the service account. Must be fewer than 100 UTF-8 bytes. email: @OutputOnly The email address of the service account. etag: Used to perform a consistent read-modify-write. name: The resource name of the service account in the following format: `projects/{project}/serviceAccounts/{account}`. Requests using `-` as a wildcard for the project will infer the project from the `account` and the `account` value can be the `email` address or the `unique_id` of the service account. In responses the resource name will always be in the format `projects/{project}/serviceAccounts/{email}`. oauth2ClientId: @OutputOnly. The OAuth2 client id for the service account. This is used in conjunction with the OAuth2 clientconfig API to make three legged OAuth2 (3LO) flows to access the data of Google users. projectId: @OutputOnly The id of the project that owns the service account. uniqueId: @OutputOnly The unique and stable id of the service account. """ description = _messages.StringField(1) displayName = _messages.StringField(2) email = _messages.StringField(3) etag = _messages.BytesField(4) name = _messages.StringField(5) oauth2ClientId = _messages.StringField(6) projectId = _messages.StringField(7) uniqueId = _messages.StringField(8) class ServiceAccountKey(_messages.Message): r"""Represents a service account key. A service account has two sets of key-pairs: user-managed, and system-managed. User-managed key-pairs can be created and deleted by users. Users are responsible for rotating these keys periodically to ensure security of their service accounts. Users retain the private key of these key-pairs, and Google retains ONLY the public key. System-managed key-pairs are managed automatically by Google, and rotated daily without user intervention. The private key never leaves Google's servers to maximize security. Public keys for all service accounts are also published at the OAuth2 Service Account API. Enums: PrivateKeyTypeValueValuesEnum: The output format for the private key. Only provided in `CreateServiceAccountKey` responses, not in `GetServiceAccountKey` or `ListServiceAccountKey` responses. Google never exposes system-managed private keys, and never retains user- managed private keys. Fields: name: The resource name of the service account key in the following format `projects/{project}/serviceAccounts/{account}/keys/{key}`. privateKeyData: The private key data. Only provided in `CreateServiceAccountKey` responses. privateKeyType: The output format for the private key. Only provided in `CreateServiceAccountKey` responses, not in `GetServiceAccountKey` or `ListServiceAccountKey` responses. Google never exposes system-managed private keys, and never retains user-managed private keys. publicKeyData: The public key data. Only provided in `GetServiceAccountKey` responses. validAfterTime: The key can be used after this timestamp. validBeforeTime: The key can be used before this timestamp. """ class PrivateKeyTypeValueValuesEnum(_messages.Enum): r"""The output format for the private key. Only provided in `CreateServiceAccountKey` responses, not in `GetServiceAccountKey` or `ListServiceAccountKey` responses. Google never exposes system-managed private keys, and never retains user-managed private keys. Values: TYPE_UNSPECIFIED: Unspecified. Equivalent to `TYPE_GOOGLE_CREDENTIALS_FILE`. TYPE_PKCS12_FILE: PKCS12 format. The password for the PKCS12 file is `notasecret`. For more information, see https://tools.ietf.org/html/rfc7292. TYPE_GOOGLE_CREDENTIALS_FILE: Google Credentials File format. """ TYPE_UNSPECIFIED = 0 TYPE_PKCS12_FILE = 1 TYPE_GOOGLE_CREDENTIALS_FILE = 2 name = _messages.StringField(1) privateKeyData = _messages.BytesField(2) privateKeyType = _messages.EnumField('PrivateKeyTypeValueValuesEnum', 3) publicKeyData = _messages.BytesField(4) validAfterTime = _messages.StringField(5) validBeforeTime = _messages.StringField(6) class SetIamPolicyRequest(_messages.Message): r"""Request message for `SetIamPolicy` method. Fields: policy: REQUIRED: The complete policy to be applied to the `resource`. The size of the policy is limited to a few 10s of KB. An empty policy is a valid policy but certain Cloud Platform services (such as Projects) might reject them. """ policy = _messages.MessageField('Policy', 1) class SignBlobRequest(_messages.Message): r"""The service account sign blob request. Fields: bytesToSign: The bytes to sign. """ bytesToSign = _messages.BytesField(1) class SignBlobResponse(_messages.Message): r"""The service account sign blob response. Fields: keyId: The id of the key used to sign the blob. signature: The signed blob. """ keyId = _messages.StringField(1) signature = _messages.BytesField(2) class SignJwtRequest(_messages.Message): r"""The service account sign JWT request. Fields: payload: The JWT payload to sign, a JSON JWT Claim set. """ payload = _messages.StringField(1) class SignJwtResponse(_messages.Message): r"""The service account sign JWT response. Fields: keyId: The id of the key used to sign the JWT. signedJwt: The signed JWT. """ keyId = _messages.StringField(1) signedJwt = _messages.StringField(2) class StandardQueryParameters(_messages.Message): r"""Query parameters accepted by all methods. Enums: FXgafvValueValuesEnum: V1 error format. AltValueValuesEnum: Data format for response. Fields: f__xgafv: V1 error format. access_token: OAuth access token. alt: Data format for response. bearer_token: OAuth bearer token. callback: JSONP fields: Selector specifying which fields to include in a partial response. key: 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. oauth_token: OAuth 2.0 token for the current user. pp: Pretty-print response. prettyPrint: Returns response with indentations and line breaks. quotaUser: 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. trace: A tracing token of the form "token:<tokenid>" to include in api requests. uploadType: Legacy upload protocol for media (e.g. "media", "multipart"). upload_protocol: Upload protocol for media (e.g. "raw", "multipart"). """ class AltValueValuesEnum(_messages.Enum): r"""Data format for response. Values: json: Responses with Content-Type of application/json media: Media download with context-dependent Content-Type proto: Responses with Content-Type of application/x-protobuf """ json = 0 media = 1 proto = 2 class FXgafvValueValuesEnum(_messages.Enum): r"""V1 error format. Values: _1: v1 error format _2: v2 error format """ _1 = 0 _2 = 1 f__xgafv = _messages.EnumField('FXgafvValueValuesEnum', 1) access_token = _messages.StringField(2) alt = _messages.EnumField('AltValueValuesEnum', 3, default='json') bearer_token = _messages.StringField(4) callback = _messages.StringField(5) fields = _messages.StringField(6) key = _messages.StringField(7) oauth_token = _messages.StringField(8) pp = _messages.BooleanField(9, default=True) prettyPrint = _messages.BooleanField(10, default=True) quotaUser = _messages.StringField(11) trace = _messages.StringField(12) uploadType = _messages.StringField(13) upload_protocol = _messages.StringField(14) class TestIamPermissionsRequest(_messages.Message): r"""Request message for `TestIamPermissions` method. Fields: permissions: The set of permissions to check for the `resource`. Permissions with wildcards (such as '*' or 'storage.*') are not allowed. For more information see IAM Overview. """ permissions = _messages.StringField(1, repeated=True) class TestIamPermissionsResponse(_messages.Message): r"""Response message for `TestIamPermissions` method. Fields: permissions: A subset of `TestPermissionsRequest.permissions` that the caller is allowed. """ permissions = _messages.StringField(1, repeated=True) encoding.AddCustomJsonFieldMapping( Rule, 'in_', 'in') encoding.AddCustomJsonFieldMapping( StandardQueryParameters, 'f__xgafv', '$.xgafv') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_1', '1') encoding.AddCustomJsonEnumMapping( StandardQueryParameters.FXgafvValueValuesEnum, '_2', '2') encoding.AddCustomJsonFieldMapping( IamProjectsServiceAccountsGetIamPolicyRequest, 'options_requestedPolicyVersion', 'options.requestedPolicyVersion') PK Ӄ�Z� �ԇ � iam_v1/__init__.pynu �[��� """Package marker file.""" from __future__ import absolute_import import pkgutil __path__ = pkgutil.extend_path(__path__, __name__) PK Ӄ�Z�H�N? ? __init__.pynu �[��� # Copyright 2016 Google Inc. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. PK Ӄ�ZQ5��S� S� iam_v1.jsonnu �[��� PK Ӄ�Z�]qh= = �� iam_client_test.pynu �[��� PK Ӄ�Z0�� -O -O � iam_v1/iam_v1_client.pynu �[��� PK Ӄ�Z��o� o� �/ iam_v1/iam_v1_messages.pynu �[��� PK Ӄ�Z� �ԇ � 9� iam_v1/__init__.pynu �[��� PK Ӄ�Z�H�N? ? � __init__.pynu �[��� PK � |�
| ver. 1.4 |
Github
|
.
| PHP 8.2.28 | Generation time: 0.02 |
proxy
|
phpinfo
|
Settings