| { |
| "parameters": { |
| "quotaUser": { |
| "location": "query", |
| "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." |
| }, |
| "fields": { |
| "type": "string", |
| "location": "query", |
| "description": "Selector specifying which fields to include in a partial response." |
| }, |
| "$.xgafv": { |
| "enum": [ |
| "1", |
| "2" |
| ], |
| "location": "query", |
| "enumDescriptions": [ |
| "v1 error format", |
| "v2 error format" |
| ], |
| "type": "string", |
| "description": "V1 error format." |
| }, |
| "prettyPrint": { |
| "default": "true", |
| "description": "Returns response with indentations and line breaks.", |
| "type": "boolean", |
| "location": "query" |
| }, |
| "access_token": { |
| "description": "OAuth access token.", |
| "type": "string", |
| "location": "query" |
| }, |
| "key": { |
| "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.", |
| "type": "string", |
| "location": "query" |
| }, |
| "alt": { |
| "default": "json", |
| "enumDescriptions": [ |
| "Responses with Content-Type of application/json", |
| "Media download with context-dependent Content-Type", |
| "Responses with Content-Type of application/x-protobuf" |
| ], |
| "description": "Data format for response.", |
| "enum": [ |
| "json", |
| "media", |
| "proto" |
| ], |
| "location": "query", |
| "type": "string" |
| }, |
| "uploadType": { |
| "description": "Legacy upload protocol for media (e.g. \"media\", \"multipart\").", |
| "type": "string", |
| "location": "query" |
| }, |
| "oauth_token": { |
| "location": "query", |
| "description": "OAuth 2.0 token for the current user.", |
| "type": "string" |
| }, |
| "callback": { |
| "location": "query", |
| "description": "JSONP", |
| "type": "string" |
| }, |
| "upload_protocol": { |
| "location": "query", |
| "type": "string", |
| "description": "Upload protocol for media (e.g. \"raw\", \"multipart\")." |
| } |
| }, |
| "ownerDomain": "google.com", |
| "servicePath": "", |
| "documentationLink": "https://cloud.google.com/asset-inventory/docs/quickstart", |
| "revision": "20201106", |
| "mtlsRootUrl": "https://cloudasset.mtls.googleapis.com/", |
| "baseUrl": "https://cloudasset.googleapis.com/", |
| "fullyEncodeReservedExpansion": true, |
| "ownerName": "Google", |
| "icons": { |
| "x32": "http://www.google.com/images/icons/product/search-32.gif", |
| "x16": "http://www.google.com/images/icons/product/search-16.gif" |
| }, |
| "rootUrl": "https://cloudasset.googleapis.com/", |
| "canonicalName": "Cloud Asset", |
| "name": "cloudasset", |
| "version": "v1p1beta1", |
| "basePath": "", |
| "kind": "discovery#restDescription", |
| "id": "cloudasset:v1p1beta1", |
| "batchPath": "batch", |
| "auth": { |
| "oauth2": { |
| "scopes": { |
| "https://www.googleapis.com/auth/cloud-platform": { |
| "description": "View and manage your data across Google Cloud Platform services" |
| } |
| } |
| } |
| }, |
| "protocol": "rest", |
| "title": "Cloud Asset API", |
| "schemas": { |
| "Expr": { |
| "properties": { |
| "description": { |
| "description": "Optional. Description of the expression. This is a longer text which describes the expression, e.g. when hovered over it in a UI.", |
| "type": "string" |
| }, |
| "expression": { |
| "description": "Textual representation of an expression in Common Expression Language syntax.", |
| "type": "string" |
| }, |
| "location": { |
| "type": "string", |
| "description": "Optional. String indicating the location of the expression for error reporting, e.g. a file name and a position in the file." |
| }, |
| "title": { |
| "type": "string", |
| "description": "Optional. Title for the expression, i.e. a short string describing its purpose. This can be used e.g. in UIs which allow to enter the expression." |
| } |
| }, |
| "description": "Represents a textual expression in the Common Expression Language (CEL) syntax. CEL is a C-like expression language. The syntax and semantics of CEL are documented at https://github.com/google/cel-spec. Example (Comparison): title: \"Summary size limit\" description: \"Determines if a summary is less than 100 chars\" expression: \"document.summary.size() \u003c 100\" Example (Equality): title: \"Requestor is owner\" description: \"Determines if requestor is the document owner\" expression: \"document.owner == request.auth.claims.email\" Example (Logic): title: \"Public documents\" description: \"Determine whether the document should be publicly visible\" expression: \"document.type != 'private' && document.type != 'internal'\" Example (Data Manipulation): title: \"Notification string\" description: \"Create a notification string with a timestamp.\" expression: \"'New message received at ' + string(document.create_time)\" The exact variables and functions that may be referenced within an expression are determined by the service that evaluates it. See the service documentation for additional information.", |
| "id": "Expr", |
| "type": "object" |
| }, |
| "AuditLogConfig": { |
| "type": "object", |
| "properties": { |
| "exemptedMembers": { |
| "description": "Specifies the identities that do not cause logging for this type of permission. Follows the same format of Binding.members.", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "logType": { |
| "enum": [ |
| "LOG_TYPE_UNSPECIFIED", |
| "ADMIN_READ", |
| "DATA_WRITE", |
| "DATA_READ" |
| ], |
| "type": "string", |
| "description": "The log type that this config enables.", |
| "enumDescriptions": [ |
| "Default case. Should never be this.", |
| "Admin reads. Example: CloudIAM getIamPolicy", |
| "Data writes. Example: CloudSQL Users create", |
| "Data reads. Example: CloudSQL Users list" |
| ] |
| } |
| }, |
| "description": "Provides the configuration for logging a type of permissions. Example: { \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:[email protected]\" ] }, { \"log_type\": \"DATA_WRITE\" } ] } This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting [email protected] from DATA_READ logging.", |
| "id": "AuditLogConfig" |
| }, |
| "Policy": { |
| "id": "Policy", |
| "description": "An Identity and Access Management (IAM) policy, which specifies access controls for Google Cloud resources. A `Policy` is a collection of `bindings`. A `binding` binds one or more `members` to a single `role`. Members can be user accounts, service accounts, Google groups, and domains (such as G Suite). A `role` is a named list of permissions; each `role` can be an IAM predefined role or a user-created custom role. For some types of Google Cloud resources, a `binding` can also specify a `condition`, which is a logical expression that allows access to a resource only if the expression evaluates to `true`. A condition can add constraints based on attributes of the request, the resource, or both. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies). **JSON example:** { \"bindings\": [ { \"role\": \"roles/resourcemanager.organizationAdmin\", \"members\": [ \"user:[email protected]\", \"group:[email protected]\", \"domain:google.com\", \"serviceAccount:[email protected]\" ] }, { \"role\": \"roles/resourcemanager.organizationViewer\", \"members\": [ \"user:[email protected]\" ], \"condition\": { \"title\": \"expirable access\", \"description\": \"Does not grant access after Sep 2020\", \"expression\": \"request.time \u003c timestamp('2020-10-01T00:00:00.000Z')\", } } ], \"etag\": \"BwWWja0YfJA=\", \"version\": 3 } **YAML example:** bindings: - members: - user:[email protected] - group:[email protected] - domain:google.com - serviceAccount:[email protected] role: roles/resourcemanager.organizationAdmin - members: - user:[email protected] role: roles/resourcemanager.organizationViewer condition: title: expirable access description: Does not grant access after Sep 2020 expression: request.time \u003c timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version: 3 For a description of IAM and its features, see the [IAM documentation](https://cloud.google.com/iam/docs/).", |
| "properties": { |
| "bindings": { |
| "description": "Associates a list of `members` to a `role`. Optionally, may specify a `condition` that determines how and when the `bindings` are applied. Each of the `bindings` must contain at least one member.", |
| "items": { |
| "$ref": "Binding" |
| }, |
| "type": "array" |
| }, |
| "auditConfigs": { |
| "type": "array", |
| "description": "Specifies cloud audit logging configuration for this policy.", |
| "items": { |
| "$ref": "AuditConfig" |
| } |
| }, |
| "etag": { |
| "type": "string", |
| "description": "`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. **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost.", |
| "format": "byte" |
| }, |
| "version": { |
| "type": "integer", |
| "format": "int32", |
| "description": "Specifies the format of the policy. Valid values are `0`, `1`, and `3`. Requests that specify an invalid value are rejected. Any operation that affects conditional role bindings must specify version `3`. This requirement applies to the following operations: * Getting a policy that includes a conditional role binding * Adding a conditional role binding to a policy * Changing a conditional role binding in a policy * Removing any role binding, with or without a condition, from a policy that includes conditions **Important:** If you use IAM Conditions, you must include the `etag` field whenever you call `setIamPolicy`. If you omit this field, then IAM allows you to overwrite a version `3` policy with a version `1` policy, and all of the conditions in the version `3` policy are lost. If a policy does not include any conditions, operations on that policy may specify any valid version or leave the field unset. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." |
| } |
| }, |
| "type": "object" |
| }, |
| "Permissions": { |
| "description": "IAM permissions", |
| "id": "Permissions", |
| "properties": { |
| "permissions": { |
| "items": { |
| "type": "string" |
| }, |
| "description": "A list of permissions. A sample permission string: \"compute.disk.get\".", |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "Explanation": { |
| "properties": { |
| "matchedPermissions": { |
| "type": "object", |
| "description": "The map from roles to their included permission matching the permission query (e.g. containing `policy.role.permissions:`). A sample role string: \"roles/compute.instanceAdmin\". The roles can also be found in the returned `policy` bindings. Note that the map is populated only if requesting with a permission query.", |
| "additionalProperties": { |
| "$ref": "Permissions" |
| } |
| } |
| }, |
| "description": "Explanation about the IAM policy search result.", |
| "id": "Explanation", |
| "type": "object" |
| }, |
| "SearchAllIamPoliciesResponse": { |
| "description": "Search all IAM policies response.", |
| "type": "object", |
| "properties": { |
| "nextPageToken": { |
| "description": "Set if there are more results than those appearing in this response; to get the next set of results, call this method again, using this value as the `page_token`.", |
| "type": "string" |
| }, |
| "results": { |
| "items": { |
| "$ref": "IamPolicySearchResult" |
| }, |
| "type": "array", |
| "description": "A list of IamPolicy that match the search query. Related information such as the associated resource is returned along with the policy." |
| } |
| }, |
| "id": "SearchAllIamPoliciesResponse" |
| }, |
| "IamPolicySearchResult": { |
| "properties": { |
| "project": { |
| "description": "The project that the associated GCP resource belongs to, in the form of `projects/{project_number}`. If an IAM policy is set on a resource (like VM instance, Cloud Storage bucket), the project field will indicate the project that contains the resource. If an IAM policy is set on a folder or orgnization, the project field will be empty.", |
| "type": "string" |
| }, |
| "policy": { |
| "$ref": "Policy", |
| "description": "The IAM policy directly set on the given resource. Note that the original IAM policy can contain multiple bindings. This only contains the bindings that match the given query. For queries that don't contain a constrain on policies (e.g. an empty query), this contains all the bindings." |
| }, |
| "explanation": { |
| "description": "Explanation about the IAM policy search result. It contains additional information to explain why the search result matches the query.", |
| "$ref": "Explanation" |
| }, |
| "resource": { |
| "type": "string", |
| "description": "The [full resource name](https://cloud.google.com/apis/design/resource_names#full_resource_name) of the resource associated with this IAM policy." |
| } |
| }, |
| "type": "object", |
| "description": "The result for a IAM Policy search.", |
| "id": "IamPolicySearchResult" |
| }, |
| "StandardResourceMetadata": { |
| "description": "The standard metadata of a cloud resource.", |
| "properties": { |
| "description": { |
| "description": "One or more paragraphs of text description of this resource. Maximum length could be up to 1M bytes.", |
| "type": "string" |
| }, |
| "project": { |
| "description": "The project that this resource belongs to, in the form of `projects/{project_number}`.", |
| "type": "string" |
| }, |
| "location": { |
| "description": "Location can be \"global\", regional like \"us-east1\", or zonal like \"us-west1-b\".", |
| "type": "string" |
| }, |
| "labels": { |
| "additionalProperties": { |
| "type": "string" |
| }, |
| "description": "Labels associated with this resource. See [Labelling and grouping GCP resources](https://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information.", |
| "type": "object" |
| }, |
| "name": { |
| "type": "string", |
| "description": "The full resource name. For example: `//compute.googleapis.com/projects/my_project_123/zones/zone1/instances/instance1`. See [Resource Names](https://cloud.google.com/apis/design/resource_names#full_resource_name) for more information." |
| }, |
| "displayName": { |
| "description": "The display name of this resource.", |
| "type": "string" |
| }, |
| "networkTags": { |
| "type": "array", |
| "items": { |
| "type": "string" |
| }, |
| "description": "Network tags associated with this resource. Like labels, network tags are a type of annotations used to group GCP resources. See [Labelling GCP resources](lhttps://cloud.google.com/blog/products/gcp/labelling-and-grouping-your-google-cloud-platform-resources) for more information." |
| }, |
| "assetType": { |
| "type": "string", |
| "description": "The type of this resource. For example: \"compute.googleapis.com/Disk\"." |
| }, |
| "additionalAttributes": { |
| "description": "Additional searchable attributes of this resource. Informational only. The exact set of attributes is subject to change. For example: project id, DNS name etc.", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| } |
| }, |
| "id": "StandardResourceMetadata", |
| "type": "object" |
| }, |
| "Binding": { |
| "description": "Associates `members` with a `role`.", |
| "type": "object", |
| "id": "Binding", |
| "properties": { |
| "condition": { |
| "$ref": "Expr", |
| "description": "The condition that is associated with this binding. If the condition evaluates to `true`, then this binding applies to the current request. If the condition evaluates to `false`, then this binding does not apply to the current request. However, a different role binding might grant the same role to one or more of the members in this binding. To learn which resources support conditions in their IAM policies, see the [IAM documentation](https://cloud.google.com/iam/help/conditions/resource-policies)." |
| }, |
| "members": { |
| "type": "array", |
| "description": "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, `[email protected]` . * `serviceAccount:{emailid}`: An email address that represents a service account. For example, `[email protected]`. * `group:{emailid}`: An email address that represents a Google group. For example, `[email protected]`. * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a user that has been recently deleted. For example, `[email protected]?uid=123456789012345678901`. If the user is recovered, this value reverts to `user:{emailid}` and the recovered user retains the role in the binding. * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a service account that has been recently deleted. For example, `[email protected]?uid=123456789012345678901`. If the service account is undeleted, this value reverts to `serviceAccount:{emailid}` and the undeleted service account retains the role in the binding. * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus unique identifier) representing a Google group that has been recently deleted. For example, `[email protected]?uid=123456789012345678901`. If the group is recovered, this value reverts to `group:{emailid}` and the recovered group retains the role in the binding. * `domain:{domain}`: The G Suite domain (primary) that represents all the users of that domain. For example, `google.com` or `example.com`. ", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "role": { |
| "type": "string", |
| "description": "Role that is assigned to `members`. For example, `roles/viewer`, `roles/editor`, or `roles/owner`." |
| } |
| } |
| }, |
| "AuditConfig": { |
| "type": "object", |
| "id": "AuditConfig", |
| "properties": { |
| "service": { |
| "description": "Specifies a service that will be enabled for audit logging. For example, `storage.googleapis.com`, `cloudsql.googleapis.com`. `allServices` is a special value that covers all services.", |
| "type": "string" |
| }, |
| "auditLogConfigs": { |
| "description": "The configuration for logging of each type of permission.", |
| "type": "array", |
| "items": { |
| "$ref": "AuditLogConfig" |
| } |
| } |
| }, |
| "description": "Specifies the audit configuration for a service. The configuration determines which permission types are logged, and what identities, if any, are exempted from logging. An AuditConfig must have one or more AuditLogConfigs. If there are AuditConfigs for both `allServices` and a specific service, the union of the two AuditConfigs is used for that service: the log_types specified in each AuditConfig are enabled, and the exempted_members in each AuditLogConfig are exempted. Example Policy with multiple AuditConfigs: { \"audit_configs\": [ { \"service\": \"allServices\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\", \"exempted_members\": [ \"user:[email protected]\" ] }, { \"log_type\": \"DATA_WRITE\" }, { \"log_type\": \"ADMIN_READ\" } ] }, { \"service\": \"sampleservice.googleapis.com\", \"audit_log_configs\": [ { \"log_type\": \"DATA_READ\" }, { \"log_type\": \"DATA_WRITE\", \"exempted_members\": [ \"user:[email protected]\" ] } ] } ] } For sampleservice, this policy enables DATA_READ, DATA_WRITE and ADMIN_READ logging. It also exempts [email protected] from DATA_READ logging, and [email protected] from DATA_WRITE logging." |
| }, |
| "SearchAllResourcesResponse": { |
| "properties": { |
| "results": { |
| "type": "array", |
| "items": { |
| "$ref": "StandardResourceMetadata" |
| }, |
| "description": "A list of resource that match the search query." |
| }, |
| "nextPageToken": { |
| "type": "string", |
| "description": "If there are more results than those appearing in this response, then `next_page_token` is included. To get the next set of results, call this method again using the value of `next_page_token` as `page_token`." |
| } |
| }, |
| "description": "Search all resources response.", |
| "id": "SearchAllResourcesResponse", |
| "type": "object" |
| } |
| }, |
| "version_module": true, |
| "description": "The cloud asset API manages the history and inventory of cloud resources.", |
| "discoveryVersion": "v1", |
| "resources": { |
| "iamPolicies": { |
| "methods": { |
| "searchAll": { |
| "httpMethod": "GET", |
| "scopes": [ |
| "https://www.googleapis.com/auth/cloud-platform" |
| ], |
| "path": "v1p1beta1/{+scope}/iamPolicies:searchAll", |
| "parameterOrder": [ |
| "scope" |
| ], |
| "description": "Searches all the IAM policies within a given accessible CRM scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the IAM policies within a scope, even if they don't have `.getIamPolicy` permission of all the IAM policies. Callers should have `cloud.assets.SearchAllIamPolicies` permission on the requested scope, otherwise the request will be rejected.", |
| "id": "cloudasset.iamPolicies.searchAll", |
| "response": { |
| "$ref": "SearchAllIamPoliciesResponse" |
| }, |
| "parameters": { |
| "pageSize": { |
| "format": "int32", |
| "type": "integer", |
| "location": "query", |
| "description": "Optional. The page size for search result pagination. Page size is capped at 500 even if a larger value is given. If set to zero, server will pick an appropriate default. Returned results may be fewer than requested. When this happens, there could be more results as long as `next_page_token` is returned." |
| }, |
| "pageToken": { |
| "location": "query", |
| "type": "string", |
| "description": "Optional. If present, retrieve the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of all other method parameters must be identical to those in the previous call." |
| }, |
| "query": { |
| "location": "query", |
| "description": "Optional. The query statement. Examples: * \"policy:[email protected]\" * \"policy:([email protected] viewer)\"", |
| "type": "string" |
| }, |
| "scope": { |
| "location": "path", |
| "pattern": "^[^/]+/[^/]+$", |
| "description": "Required. The relative name of an asset. The search is limited to the resources within the `scope`. The allowed value must be: * Organization number (such as \"organizations/123\") * Folder number(such as \"folders/1234\") * Project number (such as \"projects/12345\") * Project id (such as \"projects/abc\")", |
| "type": "string", |
| "required": true |
| } |
| }, |
| "flatPath": "v1p1beta1/{v1p1beta1Id}/{v1p1beta1Id1}/iamPolicies:searchAll" |
| } |
| } |
| }, |
| "resources": { |
| "methods": { |
| "searchAll": { |
| "httpMethod": "GET", |
| "parameters": { |
| "query": { |
| "type": "string", |
| "location": "query", |
| "description": "Optional. The query statement." |
| }, |
| "scope": { |
| "type": "string", |
| "description": "Required. The relative name of an asset. The search is limited to the resources within the `scope`. The allowed value must be: * Organization number (such as \"organizations/123\") * Folder number(such as \"folders/1234\") * Project number (such as \"projects/12345\") * Project id (such as \"projects/abc\")", |
| "pattern": "^[^/]+/[^/]+$", |
| "required": true, |
| "location": "path" |
| }, |
| "orderBy": { |
| "location": "query", |
| "description": "Optional. A comma separated list of fields specifying the sorting order of the results. The default order is ascending. Add ` DESC` after the field name to indicate descending order. Redundant space characters are ignored. For example, ` location DESC , name `.", |
| "type": "string" |
| }, |
| "assetTypes": { |
| "description": "Optional. A list of asset types that this request searches for. If empty, it will search all the supported asset types.", |
| "location": "query", |
| "repeated": true, |
| "type": "string" |
| }, |
| "pageSize": { |
| "location": "query", |
| "type": "integer", |
| "format": "int32", |
| "description": "Optional. The page size for search result pagination. Page size is capped at 500 even if a larger value is given. If set to zero, server will pick an appropriate default. Returned results may be fewer than requested. When this happens, there could be more results as long as `next_page_token` is returned." |
| }, |
| "pageToken": { |
| "description": "Optional. If present, then retrieve the next batch of results from the preceding call to this method. `page_token` must be the value of `next_page_token` from the previous response. The values of all other method parameters, must be identical to those in the previous call.", |
| "type": "string", |
| "location": "query" |
| } |
| }, |
| "response": { |
| "$ref": "SearchAllResourcesResponse" |
| }, |
| "flatPath": "v1p1beta1/{v1p1beta1Id}/{v1p1beta1Id1}/resources:searchAll", |
| "description": "Searches all the resources within a given accessible CRM scope (project/folder/organization). This RPC gives callers especially administrators the ability to search all the resources within a scope, even if they don't have `.get` permission of all the resources. Callers should have `cloud.assets.SearchAllResources` permission on the requested scope, otherwise the request will be rejected.", |
| "id": "cloudasset.resources.searchAll", |
| "parameterOrder": [ |
| "scope" |
| ], |
| "scopes": [ |
| "https://www.googleapis.com/auth/cloud-platform" |
| ], |
| "path": "v1p1beta1/{+scope}/resources:searchAll" |
| } |
| } |
| } |
| } |
| } |